HTL_thread_cond_wait
等待条件变量信号。
接口定义
int HTL_thread_cond_wait(HTL_thread_cond_t *thread_cond, HTL_thread_mutex_t *thread_mutex);
描述
HTL_thread_cond_wait()用于调用者等待条件变量thread_cond,直到信号被发出。用户必须在互斥锁thread_mutex锁定时调用此函数,互斥锁在等待时会被自动释放。当主叫方被唤醒时,互斥锁将被主叫方自动锁定,后续用户负责解锁互斥锁。
此函数将互斥锁thread_mutex与thread_cond关联,用户不能对同一条件变量thread_cond使用多个互斥锁。
即使发生错误,此函数返回后互斥锁仍处于锁定状态。
如果互斥锁是递归互斥锁,则调用方只能锁定一次互斥锁。
参数
参数名 |
类型 |
描述 |
输入/输出 |
---|---|---|---|
thread_cond |
HTL_thread_cond_t * |
条件变量句柄的地址。 |
输入 |
thread_mutex |
HTL_thread_mutex_t * |
互斥锁句柄的地址。 |
输入 |
返回值
- HTL_THREAD_SUCCESS:成功。
- 其他:失败。见错误码定义。
示例
1 2 3 4 5 6 7 8 9 10 11 | HTL_thread_mutex_t mutex = HTL_THREAD_MUTEX_NULL; HTL_thread_cond_t cond = HTL_THREAD_COND_NULL; ret = HTL_thread_mutex_init(&mutex, NULL); ret = HTL_thread_cond_init(&cond, NULL); ret = HTL_thread_mutex_lock(&mutex); ret = HTL_thread_cond_wait(&cond, &mutex); // do something HTL_thread_mutex_unlock(&mutex); |
父主题: 条件变量函数