Main Page   Modules   Data Structures   File List   Data Fields   Globals   Related Pages  

Condition Variable Routines
[Apache Portability Runtime library]


Typedefs

typedef apr_thread_cond_t apr_thread_cond_t

Functions

apr_status_t apr_thread_cond_create (apr_thread_cond_t **cond, apr_pool_t *pool)
apr_status_t apr_thread_cond_wait (apr_thread_cond_t *cond, apr_thread_mutex_t *mutex)
apr_status_t apr_thread_cond_timedwait (apr_thread_cond_t *cond, apr_thread_mutex_t *mutex, apr_interval_time_t timeout)
apr_status_t apr_thread_cond_signal (apr_thread_cond_t *cond)
apr_status_t apr_thread_cond_broadcast (apr_thread_cond_t *cond)
apr_status_t apr_thread_cond_destroy (apr_thread_cond_t *cond)
apr_pool_tapr_thread_cond_pool_get (const apr_thread_cond_t *thethread_cond)

Typedef Documentation

typedef struct apr_thread_cond_t apr_thread_cond_t
 

Opaque structure for thread condition variables


Function Documentation

apr_status_t apr_thread_cond_broadcast apr_thread_cond_t   cond
 

Signals all threads blocking on the given condition variable. Each thread that was signaled is then schedule to wake up and acquire the associated mutex. This will happen in a serialized manner.

Parameters:
cond  the condition variable on which to produce the broadcast.

apr_status_t apr_thread_cond_create apr_thread_cond_t **    cond,
apr_pool_t   pool
 

Create and initialize a condition variable that can be used to signal and schedule threads in a single process.

Parameters:
cond  the memory address where the newly created condition variable will be stored.
pool  the pool from which to allocate the mutex.

apr_status_t apr_thread_cond_destroy apr_thread_cond_t   cond
 

Destroy the condition variable and free the associated memory.

Parameters:
cond  the condition variable to destroy.

apr_pool_t* apr_thread_cond_pool_get const apr_thread_cond_t   thethread_cond
 

Get the pool used by this thread_cond.

Returns:
apr_pool_t the pool

apr_status_t apr_thread_cond_signal apr_thread_cond_t   cond
 

Signals a singla thread, if one exists, that is blocking on the given condition variable. That thread is then scheduled to wake up and acquire the associated mutex. Although it is not required, if predictible schedule is desired, that mutex must be locked while calling this function.

Parameters:
cond  the condition variable on which to produce the signal.

apr_status_t apr_thread_cond_timedwait apr_thread_cond_t   cond,
apr_thread_mutex_t   mutex,
apr_interval_time_t    timeout
 

Put the active calling thread to sleep until signaled to wake up or the timeout is reached. Each condition variable must be associated with a mutex, and that mutex must be locked before calling this function, or the behavior will be undefined. As the calling thread is put to sleep, the given mutex will be simultaneously released; and as this thread wakes up the lock is again simultaneously acquired.

Parameters:
cond  the condition variable on which to block.
mutex  the mutex that must be locked upon entering this function, is released while the thread is asleep, and is again acquired before returning from this function.
timeout  The amount of time in microseconds to wait. This is a maximum, not a minimum. If the condition is signaled, we will wake up before this time, otherwise the error APR_TIMEUP is returned.

apr_status_t apr_thread_cond_wait apr_thread_cond_t   cond,
apr_thread_mutex_t   mutex
 

Put the active calling thread to sleep until signaled to wake up. Each condition variable must be associated with a mutex, and that mutex must be locked before calling this function, or the behavior will be undefined. As the calling thread is put to sleep, the given mutex will be simultaneously released; and as this thread wakes up the lock is again simultaneously acquired.

Parameters:
cond  the condition variable on which to block.
mutex  the mutex that must be locked upon entering this function, is released while the thread is asleep, and is again acquired before returning from this function.


Generated on Fri Dec 26 01:40:49 2003 for Apache Portable Runtime by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002