fixed threading issue in NxsTestHub. NxsTesthub has to wait for its own thread to shut down on test end.

This commit is contained in:
electron128 2015-12-20 14:31:26 +01:00
parent 63c6629e57
commit a8b2bc776e
2 changed files with 10 additions and 28 deletions

View File

@ -104,24 +104,6 @@ bool rs_nxs_test::NxsTestHub::testsPassed()
return mTestScenario->checkTestPassed();
}
void rs_nxs_test::NxsTestHub::runloop()
{
double timeDelta = .2;
while(!shouldStop())
{
#ifndef WINDOWS_SYS
usleep((int) (timeDelta * 1000000));
#else
Sleep((int) (timeDelta * 1000));
#endif
tick();
}
}
void rs_nxs_test::NxsTestHub::StartTest()
{
// get all services up and running
@ -138,7 +120,7 @@ void rs_nxs_test::NxsTestHub::StartTest()
void rs_nxs_test::NxsTestHub::EndTest()
{
// then stop this thread
ask_for_stop();
join();
// stop services
PeerNxsMap::iterator mit = mPeerNxsMap.begin();
@ -217,7 +199,7 @@ void rs_nxs_test::NxsTestHub::CleanUpTest()
mTestScenario->cleanTestScenario();
}
void rs_nxs_test::NxsTestHub::tick()
void rs_nxs_test::NxsTestHub::data_tick()
{
// for each nxs instance pull out all items from each and then move to destination peer
@ -248,6 +230,8 @@ void rs_nxs_test::NxsTestHub::tick()
}
double timeDelta = .2;
usleep(timeDelta * 1000000);
}

View File

@ -35,7 +35,7 @@ namespace rs_nxs_test
* and synchronise according to their subscriptions. The default is to subscribe to all groups held by other peer
* The threads for both net instances are started which begins their processing of transactions
*/
class NxsTestHub : public RsThread, public RecvPeerItemIface
class NxsTestHub : public RsTickingThread, public RecvPeerItemIface
{
public:
@ -58,12 +58,6 @@ namespace rs_nxs_test
*/
bool testsPassed();
/*!
* This simulates the p3Service ticker and calls both gxs net services tick methods
* Also enables transport of messages between both services
*/
void runloop();
/*!
* Begings test, equivalent to CreateThread(this)
*/
@ -97,7 +91,11 @@ namespace rs_nxs_test
private:
void tick();
/*!
* This simulates the p3Service ticker and calls both gxs net services tick methods
* Also enables transport of messages between both services
*/
virtual void data_tick();
private: