34#if (CH_CFG_USE_CONDVARS == TRUE) || defined(__DOXYGEN__)
48#if CH_CFG_USE_MUTEXES == FALSE
49#error "CH_CFG_USE_CONDVARS requires CH_CFG_USE_MUTEXES"
75#define __CONDVAR_DATA(name) {__CH_QUEUE_DATA(name.queue)}
84#define CONDVAR_DECL(name) condition_variable_t name = __CONDVAR_DATA(name)
100#if CH_CFG_USE_CONDVARS_TIMEOUT == TRUE
void chCondBroadcast(condition_variable_t *cp)
Signals all threads that are waiting on the condition variable.
msg_t chCondWaitTimeoutS(condition_variable_t *cp, sysinterval_t timeout)
Waits on the condition variable releasing the mutex lock.
void chCondObjectInit(condition_variable_t *cp)
Initializes s condition_variable_t structure.
void chCondSignalI(condition_variable_t *cp)
Signals one thread that is waiting on the condition variable.
void chCondBroadcastI(condition_variable_t *cp)
Signals all threads that are waiting on the condition variable.
msg_t chCondWaitTimeout(condition_variable_t *cp, sysinterval_t timeout)
Waits on the condition variable releasing the mutex lock.
struct condition_variable condition_variable_t
condition_variable_t structure.
msg_t chCondWaitS(condition_variable_t *cp)
Waits on the condition variable releasing the mutex lock.
void chCondSignal(condition_variable_t *cp)
Signals one thread that is waiting on the condition variable.
msg_t chCondWait(condition_variable_t *cp)
Waits on the condition variable releasing the mutex lock.
struct ch_queue ch_queue_t
Type of a generic bidirectional linked list header and element.
uint64_t sysinterval_t
Type of time interval.
condition_variable_t structure.
ch_queue_t queue
Condition variable threads queue.