diff options
Diffstat (limited to 'fastos/src/tests/thread_bounce_test.cpp')
-rw-r--r-- | fastos/src/tests/thread_bounce_test.cpp | 28 |
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."); |