Lines Matching refs:wc

45 void worker_config_init(worker_config* wc,
50 memset(wc, 0, sizeof(*wc));
53 wc->signal_cond = signal_f;
54 wc->wait_cond = wait_f;
55 wc->use_broadcast = use_broadcast;
58 ASSERT_OK(uv_sem_init(&wc->sem_waiting, 0));
59 ASSERT_OK(uv_sem_init(&wc->sem_signaled, 0));
60 ASSERT_OK(uv_cond_init(&wc->cond));
61 ASSERT_OK(uv_mutex_init(&wc->mutex));
64 void worker_config_destroy(worker_config* wc) {
65 uv_mutex_destroy(&wc->mutex);
66 uv_cond_destroy(&wc->cond);
67 uv_sem_destroy(&wc->sem_signaled);
68 uv_sem_destroy(&wc->sem_waiting);
128 worker_config wc;
132 worker_config_init(&wc, 0, condvar_signal, condvar_wait);
133 ASSERT_OK(uv_thread_create(&thread, worker, &wc));
136 ASSERT_OK(wc.wait_cond(&wc, &wc.posted_1));
137 wc.signal_cond(&wc, &wc.posted_2);
140 worker_config_destroy(&wc);
147 worker_config wc;
151 worker_config_init(&wc, 1, condvar_signal, condvar_wait);
152 ASSERT_OK(uv_thread_create(&thread, worker, &wc));
155 ASSERT_OK(wc.wait_cond(&wc, &wc.posted_1));
156 wc.signal_cond(&wc, &wc.posted_2);
159 worker_config_destroy(&wc);
192 worker_config wc;
196 worker_config_init(&wc, 0, condvar_signal, condvar_timedwait);
197 ASSERT_OK(uv_thread_create(&thread, worker, &wc));
200 wc.wait_cond(&wc, &wc.posted_1);
201 wc.signal_cond(&wc, &wc.posted_2);
204 worker_config_destroy(&wc);
211 worker_config wc;
215 worker_config_init(&wc, 1, condvar_signal, condvar_timedwait);
216 ASSERT_OK(uv_thread_create(&thread, worker, &wc));
219 wc.wait_cond(&wc, &wc.posted_1);
220 wc.signal_cond(&wc, &wc.posted_2);
223 worker_config_destroy(&wc);
230 worker_config wc;
236 worker_config_init(&wc, 0, NULL, NULL);
238 uv_mutex_lock(&wc.mutex);
241 ASSERT_EQ(UV_ETIMEDOUT, uv_cond_timedwait(&wc.cond, &wc.mutex, timeout));
243 uv_mutex_unlock(&wc.mutex);
245 worker_config_destroy(&wc);