22 #include <gtest/gtest.h>
26 # include <pthread_np.h>
28 #include <core/threading/wait_condition.h>
63 start_test(
void *(*thread_func)(
void *))
65 pthread_t threads[num_threads];
67 for (uint i = 0; i < num_threads; i++) {
69 params[i]->
cond = cond;
70 pthread_create(&threads[i], NULL, thread_func, params[i]);
75 for (uint i = 0; i < num_threads; i++) {
76 pthread_cancel(threads[i]);
78 ASSERT_NE(-1, clock_gettime(CLOCK_REALTIME, &ts));
81 ASSERT_EQ(0, pthread_timedjoin_np(threads[i], NULL, &ts));
88 const uint num_threads;
92 start_waiter_thread(
void *args)
100 start_abstimed_waiter_thread(
void *args)
104 EXPECT_NE(-1, clock_gettime(CLOCK_REALTIME, &ts));
111 start_reltimed_waiter_thread(
void *args)
120 start_test(start_waiter_thread);
125 start_test(start_abstimed_waiter_thread);
130 start_test(start_reltimed_waiter_thread);