cuflow/cdisj.h: Inter-Thread Conditionals
[SMP Work Scheduling]

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 Documentation

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.


Function Documentation

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.

Generated 2009-11-23 for culibs-0.25 using Doxygen. Maintained by Petter Urkedal.