diff options
Diffstat (limited to 'test/sem_test.cpp')
-rw-r--r-- | test/sem_test.cpp | 57 |
1 files changed, 29 insertions, 28 deletions
diff --git a/test/sem_test.cpp b/test/sem_test.cpp index 58bc56c..2e8f8f8 100644 --- a/test/sem_test.cpp +++ b/test/sem_test.cpp @@ -24,48 +24,49 @@ static void wait_for_sem(Raul::Semaphore* sem) { - sem->wait(); + sem->wait(); } static void timed_wait_for_sem(Raul::Semaphore* sem) { - while (!sem->timed_wait(std::chrono::milliseconds(100))) {} + while (!sem->timed_wait(std::chrono::milliseconds(100))) { + } } int main() { - Raul::Semaphore sem(0); - assert(!sem.try_wait()); + Raul::Semaphore sem(0); + assert(!sem.try_wait()); - // Check that semaphore wakes up strict waiter - std::thread waiter(wait_for_sem, &sem); - std::this_thread::sleep_for(std::chrono::milliseconds(100)); - sem.post(); - waiter.join(); + // Check that semaphore wakes up strict waiter + std::thread waiter(wait_for_sem, &sem); + std::this_thread::sleep_for(std::chrono::milliseconds(100)); + sem.post(); + waiter.join(); - // Check that semaphore wakes up timed waiter - std::thread timed_waiter(timed_wait_for_sem, &sem); - std::this_thread::sleep_for(std::chrono::milliseconds(100)); - sem.post(); - timed_waiter.join(); + // Check that semaphore wakes up timed waiter + std::thread timed_waiter(timed_wait_for_sem, &sem); + std::this_thread::sleep_for(std::chrono::milliseconds(100)); + sem.post(); + timed_waiter.join(); - // Check that timed_wait actually waits - const auto start = std::chrono::steady_clock::now(); - sem.timed_wait(std::chrono::milliseconds(100)); - const auto end = std::chrono::steady_clock::now(); - assert(end - start > std::chrono::milliseconds(80)); - assert(end - start < std::chrono::milliseconds(400)); + // Check that timed_wait actually waits + const auto start = std::chrono::steady_clock::now(); + sem.timed_wait(std::chrono::milliseconds(100)); + const auto end = std::chrono::steady_clock::now(); + assert(end - start > std::chrono::milliseconds(80)); + assert(end - start < std::chrono::milliseconds(400)); - // Check that we can't successfully wait on a zero semaphore - assert(!sem.timed_wait(std::chrono::milliseconds(100))); + // Check that we can't successfully wait on a zero semaphore + assert(!sem.timed_wait(std::chrono::milliseconds(100))); - // Check that initial value works correctly - Raul::Semaphore sem2(2); - assert(sem2.wait()); - assert(sem2.wait()); - assert(!sem2.try_wait()); + // Check that initial value works correctly + Raul::Semaphore sem2(2); + assert(sem2.wait()); + assert(sem2.wait()); + assert(!sem2.try_wait()); - return 0; + return 0; } |