condition_variable.h
Overview
The condition_variable.h file declares the condition variable APIs in C.
File to include: <ffrt/condition_variable.h>
Library: libffrt.z.so
System capability: SystemCapability.Resourceschedule.Ffrt.Core
Since: 10
Related module: FFRT
Summary
Function
| Name | Description |
|---|---|
| FFRT_C_API int ffrt_cond_init(ffrt_cond_t* cond, const ffrt_condattr_t* attr) | Initializes a condition variable. |
| FFRT_C_API int ffrt_cond_signal(ffrt_cond_t* cond) | Unblocks at least one of the threads that are blocked on a condition variable. |
| FFRT_C_API int ffrt_cond_broadcast(ffrt_cond_t* cond) | Unblocks all threads currently blocked on a condition variable. |
| FFRT_C_API int ffrt_cond_wait(ffrt_cond_t* cond, ffrt_mutex_t* mutex) | Blocks the calling thread on a condition variable. |
| FFRT_C_API int ffrt_cond_timedwait(ffrt_cond_t* cond, ffrt_mutex_t* mutex, const struct timespec* time_point) | Blocks the calling thread on a condition variable for a given duration. If ffrt_cond_signal or ffrt_cond_broadcast is not called to unblock the thread when the maximum wait time is reached, the thread is automatically unblocked. |
| FFRT_C_API int ffrt_cond_destroy(ffrt_cond_t* cond) | Destroys a condition variable. |
Function Description
ffrt_cond_init()
FFRT_C_API int ffrt_cond_init(ffrt_cond_t* cond, const ffrt_condattr_t* attr)
Description
Initializes a condition variable.
Since: 10
Parameters
| Name | Description |
|---|---|
| ffrt_cond_t* cond | Pointer to the condition variable. |
| const ffrt_condattr_t* attr | Pointer to the condition variable attribute. |
Returns
| Type | Description |
|---|---|
| FFRT_C_API int | Returns ffrt_success if the condition variable is initialized; returns ffrt_error_inval otherwise. |
ffrt_cond_signal()
FFRT_C_API int ffrt_cond_signal(ffrt_cond_t* cond)
Description
Unblocks at least one of the threads that are blocked on a condition variable.
Since: 10
Parameters
| Name | Description |
|---|---|
| ffrt_cond_t* cond | Pointer to the condition variable. |
Returns
| Type | Description |
|---|---|
| FFRT_C_API int | Returns ffrt_success if at least one of the threads is unblocked; returns ffrt_error_inval otherwise. |
ffrt_cond_broadcast()
FFRT_C_API int ffrt_cond_broadcast(ffrt_cond_t* cond)
Description
Unblocks all threads currently blocked on a condition variable.
Since: 10
Parameters
| Name | Description |
|---|---|
| ffrt_cond_t* cond | Pointer to the condition variable. |
Returns
| Type | Description |
|---|---|
| FFRT_C_API int | Returns ffrt_success if all threads are unblocked successfully; returns ffrt_error_inval otherwise. |
ffrt_cond_wait()
FFRT_C_API int ffrt_cond_wait(ffrt_cond_t* cond, ffrt_mutex_t* mutex)
Description
Blocks the calling thread on a condition variable.
Since: 10
Parameters
| Name | Description |
|---|---|
| ffrt_cond_t* cond | Pointer to the condition variable. |
| ffrt_mutex_t* mutex | Pointer to the mutex. |
Returns
| Type | Description |
|---|---|
| FFRT_C_API int | Returns ffrt_success if the thread is unblocked after being blocked; returns ffrt_error_inval otherwise. |
ffrt_cond_timedwait()
FFRT_C_API int ffrt_cond_timedwait(ffrt_cond_t* cond, ffrt_mutex_t* mutex, const struct timespec* time_point)
Description
Blocks the calling thread on a condition variable for a given duration. If ffrt_cond_signal or ffrt_cond_broadcast is not called to unblock the thread when the maximum wait time is reached, the thread is automatically unblocked.
Since: 10
Parameters
| Name | Description |
|---|---|
| ffrt_cond_t* cond | Pointer to the condition variable. |
| ffrt_mutex_t* mutex | Pointer to the mutex. |
| const struct timespec* time_point | Pointer to the maximum duration that the thread is blocked. |
Returns
| Type | Description |
|---|---|
| FFRT_C_API int | Returns ffrt_success if the thread is unblocked after being blocked; returns ffrt_error_timedout if the wait times out; returns ffrt_error_inval if the wait fails. |
ffrt_cond_destroy()
FFRT_C_API int ffrt_cond_destroy(ffrt_cond_t* cond)
Description
Destroys a condition variable.
Since: 10
Parameters
| Name | Description |
|---|---|
| ffrt_cond_t* cond | Pointer to the condition variable. |
Returns
| Type | Description |
|---|---|
| FFRT_C_API int | Returns ffrt_success if the condition variable is destroyed successfully; returns ffrt_error_inval otherwise. |