Lines Matching refs:cond

99 int pthread_cond_init(pthread_cond_t *cond, const pthread_condattr_t *attr)  in pthread_cond_init()  argument
106 if (cond == RT_NULL) in pthread_cond_init()
116 cond->attr = PTHREAD_PROCESS_PRIVATE; in pthread_cond_init()
120 cond->attr = *attr; in pthread_cond_init()
123 result = rt_sem_init(&cond->sem, cond_name, 0, RT_IPC_FLAG_FIFO); in pthread_cond_init()
130 rt_object_detach(&(cond->sem.parent.parent)); in pthread_cond_init()
131 cond->sem.parent.parent.type = RT_Object_Class_Semaphore; in pthread_cond_init()
161 int pthread_cond_destroy(pthread_cond_t *cond) in pthread_cond_destroy() argument
164 if (cond == RT_NULL) in pthread_cond_destroy()
169 if (cond->attr == -1) in pthread_cond_destroy()
174 if (!rt_list_isempty(&cond->sem.parent.suspend_thread)) in pthread_cond_destroy()
179 result = rt_sem_trytake(&(cond->sem)); in pthread_cond_destroy()
182 pthread_cond_broadcast(cond); in pthread_cond_destroy()
187 rt_memset(cond, 0, sizeof(pthread_cond_t)); in pthread_cond_destroy()
188 cond->attr = -1; in pthread_cond_destroy()
218 int pthread_cond_broadcast(pthread_cond_t *cond) in pthread_cond_broadcast() argument
222 if (cond == RT_NULL) in pthread_cond_broadcast()
224 if (cond->attr == -1) in pthread_cond_broadcast()
225 pthread_cond_init(cond, RT_NULL); in pthread_cond_broadcast()
230 result = rt_sem_trytake(&(cond->sem)); in pthread_cond_broadcast()
234 rt_sem_release(&(cond->sem)); in pthread_cond_broadcast()
239 rt_sem_release(&(cond->sem)); in pthread_cond_broadcast()
276 int pthread_cond_signal(pthread_cond_t *cond) in pthread_cond_signal() argument
281 if (cond == RT_NULL) in pthread_cond_signal()
283 if (cond->attr == -1) in pthread_cond_signal()
284 pthread_cond_init(cond, RT_NULL); in pthread_cond_signal()
288 if (rt_list_isempty(&cond->sem.parent.suspend_thread)) in pthread_cond_signal()
298 result = rt_sem_release(&(cond->sem)); in pthread_cond_signal()
338 rt_err_t _pthread_cond_timedwait(pthread_cond_t *cond, in _pthread_cond_timedwait() argument
346 sem = &(cond->sem); in _pthread_cond_timedwait()
353 if (!cond || !mutex) in _pthread_cond_timedwait()
358 if (cond->attr == -1) in _pthread_cond_timedwait()
360 pthread_cond_init(cond, RT_NULL); in _pthread_cond_timedwait()
476 int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex) in pthread_cond_wait() argument
481 result = _pthread_cond_timedwait(cond, mutex, RT_WAITING_FOREVER); in pthread_cond_wait()
529 int pthread_cond_timedwait(pthread_cond_t *cond, in pthread_cond_timedwait() argument
537 result = _pthread_cond_timedwait(cond, mutex, timeout); in pthread_cond_timedwait()