summaryrefslogtreecommitdiffstats
path: root/fastos/src/tests/thread_bounce_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'fastos/src/tests/thread_bounce_test.cpp')
-rw-r--r--fastos/src/tests/thread_bounce_test.cpp28
1 files changed, 16 insertions, 12 deletions
diff --git a/fastos/src/tests/thread_bounce_test.cpp b/fastos/src/tests/thread_bounce_test.cpp
index bf94f3e1aab..423221d55cb 100644
--- a/fastos/src/tests/thread_bounce_test.cpp
+++ b/fastos/src/tests/thread_bounce_test.cpp
@@ -14,8 +14,10 @@ class Thread_Bounce_Test : public ThreadTestBase
TestHeader("Bounce Test");
FastOS_ThreadPool pool(128 * 1024);
- FastOS_Cond cond1;
- FastOS_Cond cond2;
+ std::mutex mutex1;
+ std::condition_variable cond1;
+ std::mutex mutex2;
+ std::condition_variable cond2;
Job job1;
Job job2;
FastOS_Time checkTime;
@@ -28,7 +30,9 @@ class Thread_Bounce_Test : public ThreadTestBase
job2.code = BOUNCE_CONDITIONS;
job1.otherjob = &job2;
job2.otherjob = &job1;
+ job1.mutex = &mutex1;
job1.condition = &cond1;
+ job2.mutex = &mutex2;
job2.condition = &cond2;
job1.ownThread = pool.NewThread(this, static_cast<void *>(&job1));
@@ -44,28 +48,28 @@ class Thread_Bounce_Test : public ThreadTestBase
left = static_cast<int>(checkTime.MilliSecsToNow());
}
- cond1.Lock();
+ mutex1.lock();
cnt1 = job1.bouncewakeupcnt;
- cond1.Unlock();
- cond2.Lock();
+ mutex1.unlock();
+ mutex2.lock();
cnt2 = job2.bouncewakeupcnt;
- cond2.Unlock();
+ mutex2.unlock();
cntsum = cnt1 + cnt2;
Progress(lastcntsum != cntsum, "%d bounces", cntsum);
lastcntsum = cntsum;
}
job1.ownThread->SetBreakFlag();
- cond1.Lock();
+ mutex1.lock();
job1.bouncewakeup = true;
- cond1.Signal();
- cond1.Unlock();
+ cond1.notify_one();
+ mutex1.unlock();
job2.ownThread->SetBreakFlag();
- cond2.Lock();
+ mutex2.lock();
job2.bouncewakeup = true;
- cond2.Signal();
- cond2.Unlock();
+ cond2.notify_one();
+ mutex2.unlock();
pool.Close();
Progress(true, "Pool closed.");