20 #ifndef THREAD_CONDITION_VARIABLE_H 21 #include "SheafSystem/thread_condition_variable.h" 26 #include "SheafSystem/std_iostream.h" 28 #include "SheafSystem/assert_contract.h" 31 sheaf::thread_condition_variable::
32 thread_condition_variable()
38 int rtncode = pthread_cond_init(&pthread_cond,0);
40 rtncode = pthread_mutex_init(&pthread_mutex,0);
51 sheaf::thread_condition_variable::
52 ~thread_condition_variable()
59 int rtncode = pthread_cond_destroy(&pthread_cond);
61 rtncode = pthread_mutex_destroy(&pthread_mutex);
73 sheaf::thread_condition_variable::
83 sheaf::thread_condition_variable::
91 int rtncode = pthread_cond_broadcast(&pthread_cond);
103 sheaf::thread_condition_variable::
111 int rtncode = pthread_cond_signal(&pthread_cond);
115 ensure(rtncode == 0);
123 sheaf::thread_condition_variable::
124 timedwait(timespec* xtime)
135 int rtncode = pthread_cond_timedwait(&pthread_cond, &pthread_mutex, xtime);
139 ensure(rtncode == 0);
148 sheaf::thread_condition_variable::
156 int rtncode = pthread_cond_wait(&pthread_cond, &pthread_mutex);
160 ensure(rtncode == 0);
168 sheaf::thread_condition_variable::
178 rtncode = pthread_mutex_lock(&pthread_mutex);
182 ensure(rtncode == 0);
190 sheaf::thread_condition_variable::
198 int rtncode = pthread_mutex_unlock(&pthread_mutex);
202 ensure(rtncode == 0);