---
title: HTL_thread_cond_timedwait
description: "等待条件变量信号并设置超时时间。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2300/accel/kunpengaccel_ksl_16_0127.html
sourcePath: /source/zh/kunpengboostkithistory/2300/accel/kunpengaccel_ksl_16_0127.html
indexId: 38480f6c424cec26da028ad7efe8cdfac8fd2477a51bc0514f1c94cb96ef917e74
---
# HTL_thread_cond_timedwait

等待条件变量信号并设置超时时间。

#### 接口定义

int HTL_thread_cond_timedwait(HTL_thread_cond_t *thread_cond, HTL_thread_mutex_t *thread_mutex, const struct timespec *time);


#### 描述

HTL_thread_cond_timedwait()的调用者指定绝对时间time内等待条件变量thread_cond信号被发出。用户必须在互斥锁thread_mutex锁定时调用此函数。互斥锁将在等待时自动释放。当主叫方被唤醒时，互斥锁将被主叫方自动锁定，后续用户负责解锁互斥锁。如果系统时间在发出条件信号之前超过time，则返回HTL_THREAD_ERR_COND_TIMEDOUT错误码。

此函数将互斥锁thread_mutex与thread_cond关联，用户不能对同一条件变量thread_cond使用多个互斥锁。

即使发生错误，此函数返回后互斥锁仍处于锁定状态。

如果互斥锁是递归互斥锁，则调用方只能锁定一次互斥锁。


#### 参数

| 参数名 | 类型 | 描述 | 输入/输出 |
| --- | --- | --- | --- |
| thread\_cond | HTL\_thread\_cond\_t \* | 条件变量句柄地址。 | 输入 |
| thread\_mutex | HTL\_thread\_mutex\_t \* | 互斥锁句柄地址。 | 输入 |
| time | struct timespec\* | 超时的绝对时间。 | 输入 |


#### 返回值

- HTL_THREAD_SUCCESS：成功。
- 其他：失败。见错误码定义。


#### 示例

```
HTL_thread_cond_t cond = HTL_THREAD_COND_NULL;
HTL_thread_mutex_t mutex = HTL_THREAD_MUTEX_NULL;
struct timespec ts;
struct timeval tv;
ret = gettimeofday(&tv, NULL);
assert(!ret);
ts.tv_sec = tv.tv_sec;
ts.tv_nsec = tv.tv_usec * 1000;
ts.tv_sec += 1;
HTL_thread_cond_timedwait(&cond, &mutex, &ts);
```
