Typedefs | |
typedef AO_t | cuflow_cdisj_t |
Functions | |
void | cuflow_cdisj_wait_while (cuflow_cdisj_t *cdisj) |
void | cuflow_cdisj_wait_until (cuflow_cdisj_t *cdisj) |
void | cuflow_cdisj_sub1 (cuflow_cdisj_t *cdisj) |
void | cuflow_cdisj_sub1_release (cuflow_cdisj_t *cdisj) |
void | cuflow_cdisj_sub1_release_write (cuflow_cdisj_t *cdisj) |
typedef AO_t cuflow_cdisj_t |
Type used to maintain a disjunction of several conditions across threads. This is a simple atomic integer with a special interpretation. Typically a non-zero value means that work scheduled by the current thread is not yet completed.
void cuflow_cdisj_sub1 | ( | cuflow_cdisj_t * | cdisj | ) |
Decrements *cdisj and
if it becomes zero, broadcasts to other threads possibly waiting for cdisj to become zero.
void cuflow_cdisj_sub1_release | ( | cuflow_cdisj_t * | cdisj | ) |
A variant of cuflow_cdisj_sub1 which release barrier (cf AO_fetch_and_sub1_release).
void cuflow_cdisj_sub1_release_write | ( | cuflow_cdisj_t * | cdisj | ) |
A variant of cuflow_cdisj_sub1 with write-release barrier (cf AO_fetch_and_sub1_release_write).
void cuflow_cdisj_wait_until | ( | cuflow_cdisj_t * | cdisj | ) |
Waits until *cdisj becomes
non-zero, tending to scheduled work if the condition is not fulfilled
void cuflow_cdisj_wait_while | ( | cuflow_cdisj_t * | cdisj | ) |
Waits while *cdisj is
non-zero, tending to scheduled work if the condition is not fulfilled.