diff options
Diffstat (limited to 'test/thread_test.cpp')
-rw-r--r-- | test/thread_test.cpp | 44 |
1 files changed, 15 insertions, 29 deletions
diff --git a/test/thread_test.cpp b/test/thread_test.cpp index 785e596..7fcaf9f 100644 --- a/test/thread_test.cpp +++ b/test/thread_test.cpp @@ -16,9 +16,9 @@ #include <atomic> #include <iostream> +#include <thread> #include "raul/Semaphore.hpp" -#include "raul/Thread.hpp" #include "raul/ThreadVar.hpp" using namespace std; @@ -27,39 +27,25 @@ using namespace Raul; Raul::ThreadVar<int> var(0); std::atomic<int> n_errors(0); -class Waiter : public Raul::Thread { -public: - Waiter(Semaphore& sem) : Raul::Thread(), _sem(sem) { - if (set_scheduling(true, 10)) { - cerr << "Set priority on non-existent thread" << endl; - } - } - -private: - void _run() { - if (!set_scheduling(true, 10)) { - cerr << "Failed to set priority" << endl; - } - var = 41; - cout << "[Waiter] Waiting for signal..." << endl; - _sem.wait(); - cout << "[Waiter] Received signal, exiting" << endl; - var = 42; - if (var != 42) { - cerr << "[Waiter] var != 42" << endl; - ++n_errors; - } +static void +wait(Semaphore* sem) +{ + var = 41; + cout << "[Waiter] Waiting for signal..." << endl; + sem->wait(); + cout << "[Waiter] Received signal, exiting" << endl; + var = 42; + if (var != 42) { + cerr << "[Waiter] var != 42" << endl; + ++n_errors; } - - Semaphore& _sem; -}; +} int main() { - Semaphore sem(0); - Waiter waiter(sem); - waiter.start(); + Semaphore sem(0); + std::thread waiter(wait, &sem); var = 24; |