Lines Matching refs:condition

42 int32_t HksConditionWait(HksCondition *condition)  in HksConditionWait()  argument
44 HKS_IF_NULL_LOGE_RETURN(condition, -1, "HksConditionWait condition is NULL!") in HksConditionWait()
46 int32_t ret = pthread_mutex_lock(&condition->mutex); in HksConditionWait()
51 if (atomic_load(&condition->notified)) { in HksConditionWait()
52 int unlockRet = pthread_mutex_unlock(&condition->mutex); in HksConditionWait()
59 ret = pthread_cond_wait(&condition->cond, &condition->mutex); in HksConditionWait()
63 int unlockRet = pthread_mutex_unlock(&condition->mutex); in HksConditionWait()
71 int32_t HksConditionNotify(HksCondition *condition) in HksConditionNotify() argument
73 HKS_IF_NULL_LOGE_RETURN(condition, -1, "HksConditionNotify condition is NULL!") in HksConditionNotify()
75 int32_t ret = pthread_mutex_lock(&condition->mutex); in HksConditionNotify()
82 if (atomic_compare_exchange_strong(&condition->notified, &flag, true)) { in HksConditionNotify()
88 ret = pthread_cond_signal(&condition->cond); in HksConditionNotify()
92 int unlockRet = pthread_mutex_unlock(&condition->mutex); in HksConditionNotify()
99 int32_t HksConditionNotifyAll(HksCondition *condition) in HksConditionNotifyAll() argument
101 HKS_IF_NULL_LOGE_RETURN(condition, -1, "HksConditionNotifyAll condition is NULL!") in HksConditionNotifyAll()
103 int32_t ret = pthread_mutex_lock(&condition->mutex); in HksConditionNotifyAll()
110 if (atomic_compare_exchange_strong(&condition->notified, &flag, true)) { in HksConditionNotifyAll()
116 ret = pthread_cond_broadcast(&condition->cond); in HksConditionNotifyAll()
120 int unlockRet = pthread_mutex_unlock(&condition->mutex); in HksConditionNotifyAll()
129 HksCondition *condition = (HksCondition *)HksMalloc(sizeof(HksCondition)); in HksConditionCreate() local
130 HKS_IF_NULL_RETURN(condition, NULL) in HksConditionCreate()
131 atomic_store(&condition->notified, false); in HksConditionCreate()
132 int32_t ret = pthread_mutex_init(&condition->mutex, NULL); in HksConditionCreate()
135 HKS_FREE(condition); in HksConditionCreate()
144 ret = pthread_cond_init(&condition->cond, &attr); in HksConditionCreate()
151 pthread_mutex_destroy(&condition->mutex); in HksConditionCreate()
152 HKS_FREE(condition); in HksConditionCreate()
155 return condition; in HksConditionCreate()
158 void HksConditionDestroy(HksCondition* condition) in HksConditionDestroy() argument
160 if (condition == NULL) { in HksConditionDestroy()
164 int ret = pthread_mutex_destroy(&condition->mutex); in HksConditionDestroy()
168 ret = pthread_cond_destroy(&condition->cond); in HksConditionDestroy()
172 HKS_FREE(condition); in HksConditionDestroy()