diff options
| author | Pierre Bourdon <delroth@gmail.com> | 2016-06-24 10:43:46 +0200 |
|---|---|---|
| committer | Pierre Bourdon <delroth@gmail.com> | 2016-06-24 10:43:46 +0200 |
| commit | 3570c7f03a2aa90aa634f96c0af1969af610f14d (patch) | |
| tree | 4252e03c0e853ba7cffe022937698c854ad0eaa9 /Source/UnitTests/Common/BlockingLoopTest.cpp | |
| parent | 2115e8a4a6814e32107b5205ff5c95bbd3c6e99c (diff) | |
Reformat all the things. Have fun with merge conflicts.
Diffstat (limited to 'Source/UnitTests/Common/BlockingLoopTest.cpp')
| -rw-r--r-- | Source/UnitTests/Common/BlockingLoopTest.cpp | 114 |
1 files changed, 55 insertions, 59 deletions
diff --git a/Source/UnitTests/Common/BlockingLoopTest.cpp b/Source/UnitTests/Common/BlockingLoopTest.cpp index 805aca446c..a131e1546e 100644 --- a/Source/UnitTests/Common/BlockingLoopTest.cpp +++ b/Source/UnitTests/Common/BlockingLoopTest.cpp @@ -11,74 +11,70 @@ TEST(BlockingLoop, MultiThreaded) { - Common::BlockingLoop loop; - std::atomic<int> signaled_a(0); - std::atomic<int> received_a(0); - std::atomic<int> signaled_b(0); - std::atomic<int> received_b(0); - for (int i = 0; i < 100; i++) - { - // Invalidate the current state. - received_a.store(signaled_a.load() + 1); - received_b.store(signaled_b.load() + 123); + Common::BlockingLoop loop; + std::atomic<int> signaled_a(0); + std::atomic<int> received_a(0); + std::atomic<int> signaled_b(0); + std::atomic<int> received_b(0); + for (int i = 0; i < 100; i++) + { + // Invalidate the current state. + received_a.store(signaled_a.load() + 1); + received_b.store(signaled_b.load() + 123); - // Must not block as the loop is stopped. - loop.Wait(); + // Must not block as the loop is stopped. + loop.Wait(); - std::thread loop_thread( - [&]() { - loop.Run( - [&]() { - received_a.store(signaled_a.load()); - received_b.store(signaled_b.load()); - }); - }); + std::thread loop_thread([&]() { + loop.Run([&]() { + received_a.store(signaled_a.load()); + received_b.store(signaled_b.load()); + }); + }); - // Now Wait must block. - loop.Prepare(); + // Now Wait must block. + loop.Prepare(); - // The payload must run at least once on startup. - loop.Wait(); - EXPECT_EQ(signaled_a.load(), received_a.load()); - EXPECT_EQ(signaled_b.load(), received_b.load()); + // The payload must run at least once on startup. + loop.Wait(); + EXPECT_EQ(signaled_a.load(), received_a.load()); + EXPECT_EQ(signaled_b.load(), received_b.load()); - std::thread run_a_thread( - [&]() { - for (int j = 0; j < 100; j++) - { - for (int k = 0; k < 100; k++) - { - signaled_a++; - loop.Wakeup(); - } + std::thread run_a_thread([&]() { + for (int j = 0; j < 100; j++) + { + for (int k = 0; k < 100; k++) + { + signaled_a++; + loop.Wakeup(); + } - loop.Wait(); - EXPECT_EQ(signaled_a.load(), received_a.load()); - } - }); - std::thread run_b_thread( - [&]() { - for (int j = 0; j < 100; j++) - { - for (int k = 0; k < 100; k++) - { - signaled_b++; - loop.Wakeup(); - } + loop.Wait(); + EXPECT_EQ(signaled_a.load(), received_a.load()); + } + }); + std::thread run_b_thread([&]() { + for (int j = 0; j < 100; j++) + { + for (int k = 0; k < 100; k++) + { + signaled_b++; + loop.Wakeup(); + } - loop.Wait(); - EXPECT_EQ(signaled_b.load(), received_b.load()); - } - }); + loop.Wait(); + EXPECT_EQ(signaled_b.load(), received_b.load()); + } + }); - run_a_thread.join(); - run_b_thread.join(); + run_a_thread.join(); + run_b_thread.join(); - loop.Stop(); + loop.Stop(); - // Must not block - loop.Wait(); + // Must not block + loop.Wait(); - loop_thread.join(); - } + loop_thread.join(); + } } |
