鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

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);