Fixed concurrent tests

git-svn-id: svn://db.shs.com.ru/pip@892 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5
This commit is contained in:
5 changed files with 15 additions and 34 deletions

View File

@@ -1,7 +1,3 @@
//
// Created by fomenko on 27.09.2019.
//
#ifndef AWRCANFLASHER_TESTUTIL_H
#define AWRCANFLASHER_TESTUTIL_H
@@ -20,13 +16,16 @@ PIOBJECT(TestUtil)
public:
double threadStartTime;
PIThread* thread = new PIThread();
volatile bool isRunning;
volatile bool isRunning = false;
std::function<void()> adapterFunctionDefault;
bool createThread(const std::function<void()>& fun = nullptr, PIThread* thread_ = nullptr) {
std::function<void()> actualFun = fun == nullptr ? adapterFunctionDefault : fun;
if (thread_ == nullptr) thread_ = thread;
thread_->startOnce([=](void*){ actualFun(); });
thread_->startOnce([=](void*){
isRunning = true;
actualFun();
});
return waitThread(thread_);
}
@@ -36,7 +35,7 @@ public:
while (!isRunning) {
isTimeout = WAIT_THREAD_TIME_MS <= measurer.elapsed_m();
if (isTimeout) break;
piMSleep(1);
piUSleep(100);
}
threadStartTime = measurer.elapsed_m();