# condition_variable.h ## 概述 声明条件变量的C接口。 **库:** libffrt.z.so **系统能力:** SystemCapability.Resourceschedule.Ffrt.Core **起始版本:** 10 **相关模块:** [FFRT](capi-ffrt.md) ## 汇总 ### 函数 | 名称 | 描述 | | -- | -- | | [FFRT_C_API int ffrt_cond_init(ffrt_cond_t* cond, const ffrt_condattr_t* attr)](#ffrt_cond_init) | 初始化条件变量。 | | [FFRT_C_API int ffrt_cond_signal(ffrt_cond_t* cond)](#ffrt_cond_signal) | 唤醒阻塞在条件变量上的一个任务。 | | [FFRT_C_API int ffrt_cond_broadcast(ffrt_cond_t* cond)](#ffrt_cond_broadcast) | 唤醒阻塞在条件变量上的所有任务。 | | [FFRT_C_API int ffrt_cond_wait(ffrt_cond_t* cond, ffrt_mutex_t* mutex)](#ffrt_cond_wait) | 条件变量等待函数,条件变量不满足时阻塞当前任务。 | | [FFRT_C_API int ffrt_cond_timedwait(ffrt_cond_t* cond, ffrt_mutex_t* mutex, const struct timespec* time_point)](#ffrt_cond_timedwait) | 条件变量超时等待函数,条件变量不满足时阻塞当前任务,超时等待返回。如果达到最大等待时间点时没有调用ffrt_cond_signal或ffrt_cond_broadcast函数解除线程阻塞,则线程会被自动解除阻塞。 | | [FFRT_C_API int ffrt_cond_destroy(ffrt_cond_t* cond)](#ffrt_cond_destroy) | 销毁条件变量。 | ## 函数说明 ### ffrt_cond_init() ``` FFRT_C_API int ffrt_cond_init(ffrt_cond_t* cond, const ffrt_condattr_t* attr) ``` **描述** 初始化条件变量。 **起始版本:** 10 **参数:** | 参数项 | 描述 | | -- | -- | | [ffrt_cond_t](capi-ffrt-ffrt-cond-t.md)* cond | 条件变量指针。 | | [const ffrt_condattr_t](capi-ffrt-ffrt-condattr-t.md)* attr | 条件变量属性指针。 | **返回:** | 类型 | 说明 | | -- | -- | | FFRT_C_API int | 初始化条件变量成功返回ffrt_success,
初始化条件变量失败返回ffrt_error_inval。 | ### ffrt_cond_signal() ``` FFRT_C_API int ffrt_cond_signal(ffrt_cond_t* cond) ``` **描述** 唤醒阻塞在条件变量上的一个任务。 **起始版本:** 10 **参数:** | 参数项 | 描述 | | -- | -- | | [ffrt_cond_t](capi-ffrt-ffrt-cond-t.md)* cond | 条件变量指针。 | **返回:** | 类型 | 说明 | | -- | -- | | FFRT_C_API int | 唤醒成功返回ffrt_success,
唤醒失败返回ffrt_error_inval。 | ### ffrt_cond_broadcast() ``` FFRT_C_API int ffrt_cond_broadcast(ffrt_cond_t* cond) ``` **描述** 唤醒阻塞在条件变量上的所有任务。 **起始版本:** 10 **参数:** | 参数项 | 描述 | | -- | -- | | [ffrt_cond_t](capi-ffrt-ffrt-cond-t.md)* cond | 条件变量指针。 | **返回:** | 类型 | 说明 | | -- | -- | | FFRT_C_API int | 唤醒成功返回ffrt_success,
唤醒失败返回ffrt_error_inval。 | ### ffrt_cond_wait() ``` FFRT_C_API int ffrt_cond_wait(ffrt_cond_t* cond, ffrt_mutex_t* mutex) ``` **描述** 条件变量等待函数,条件变量不满足时阻塞当前任务。 **起始版本:** 10 **参数:** | 参数项 | 描述 | | -- | -- | | [ffrt_cond_t](capi-ffrt-ffrt-cond-t.md)* cond | 条件变量指针。 | | [ffrt_mutex_t](capi-ffrt-ffrt-mutex-t.md)* mutex | mutex指针。 | **返回:** | 类型 | 说明 | | -- | -- | | FFRT_C_API int | 等待后被成功唤醒返回ffrt_success,
等待失败返回ffrt_error_inval。 | ### ffrt_cond_timedwait() ``` FFRT_C_API int ffrt_cond_timedwait(ffrt_cond_t* cond, ffrt_mutex_t* mutex, const struct timespec* time_point) ``` **描述** 条件变量超时等待函数,条件变量不满足时阻塞当前任务,超时等待返回。如果达到最大等待时间点时没有调用ffrt_cond_signal或ffrt_cond_broadcast函数解除线程阻塞,则线程会被自动解除阻塞。 **起始版本:** 10 **参数:** | 参数项 | 描述 | | -- | -- | | [ffrt_cond_t](capi-ffrt-ffrt-cond-t.md)* cond | 条件变量指针。 | | [ffrt_mutex_t](capi-ffrt-ffrt-mutex-t.md)* mutex | mutex指针。 | | const struct timespec* time_point | 最大等待到的时间点,超过这个时间点等待返回。 | **返回:** | 类型 | 说明 | | -- | -- | | FFRT_C_API int | 等待后被成功唤醒返回ffrt_success,
等待超时返回ffrt_error_timedout,
等待失败ffrt_error_inval。 | ### ffrt_cond_destroy() ``` FFRT_C_API int ffrt_cond_destroy(ffrt_cond_t* cond) ``` **描述** 销毁条件变量。 **起始版本:** 10 **参数:** | 参数项 | 描述 | | -- | -- | | [ffrt_cond_t](capi-ffrt-ffrt-cond-t.md)* cond | 条件变量指针。 | **返回:** | 类型 | 说明 | | -- | -- | | FFRT_C_API int | 销毁条件变量成功返回ffrt_success,
销毁条件变量失败返回ffrt_error_inval。 |