PTHREAD_COND_INIT(3C)   Standard C Library Functions   PTHREAD_COND_INIT(3C)
NAME
       pthread_cond_init, pthread_cond_destroy - initialize or destroy
       condition variables
SYNOPSIS
       cc -mt [ 
flag... ] 
file... -lpthread [ 
library... ]
       #include <pthread.h>       
int pthread_cond_init(
pthread_cond_t *restrict cond,            
const pthread_condattr_t *restrict attr);       
int pthread_cond_destroy(
pthread_cond_t *cond       pthread_cond_t cond= 
PTHREAD_COND_INITIALIZER;
DESCRIPTION
       The function 
pthread_cond_init() initializes the condition variable
       referenced by 
cond with attributes referenced by 
attr. If 
attr is       
NULL, the default condition variable attributes are used; the effect
       is the same as passing the address of a default condition variable
       attributes object. See 
pthread_condattr_init(3C). Upon successful
       initialization, the state of the condition variable becomes
       initialized.
       Attempting to initialize an already initialized condition variable
       results in undefined behavior.
       The function 
pthread_cond_destroy() destroys the given condition
       variable specified by 
cond; the object becomes, in effect,
       uninitialized. An implementation may cause 
pthread_cond_destroy() to
       set the object referenced by 
cond to an invalid value. A destroyed
       condition variable object can be re-initialized using       
pthread_cond_init(); the results of otherwise referencing the object
       after it has been destroyed are undefined.
       It is safe to destroy an initialized condition variable upon which no
       threads are currently blocked. Attempting to destroy a condition
       variable upon which other threads are currently blocked results in
       undefined behavior.
       In cases where default condition variable attributes are appropriate,
       the macro 
PTHREAD_COND_INITIALIZER can be used to initialize
       condition variables that are statically allocated. The effect is
       equivalent to dynamic initialization by a call to 
pthread_cond_init()       with parameter 
attr specified as  
NULL, except that no error checks
       are performed.
RETURN VALUES
       If successful, the 
pthread_cond_init() and 
pthread_cond_destroy()       functions return  
0. Otherwise, an error number is returned to
       indicate the error. The 
EBUSY and 
EINVAL error checks, if
       implemented, act as if they were performed immediately at the
       beginning of processing for the function and caused an error return
       prior to modifying the state of the condition variable specified by       
cond.
ERRORS
       The  
pthread_cond_init() function will fail if:       
EAGAIN                 The system lacked the necessary resources (other than
                 memory) to initialize another condition variable.       
ENOMEM                 Insufficient memory exists to initialize the condition
                 variable.
       The 
pthread_cond_init() function may fail if:       
EBUSY                 The implementation has detected an attempt to re-initialize
                 the object referenced by 
cond, a previously initialized,
                 but not yet destroyed, condition variable.       
EINVAL                 The value specified by 
attr is invalid.
       The 
pthread_cond_destroy() function may fail if:       
EBUSY                 The implementation has detected an attempt to destroy the
                 object referenced by 
cond while it is referenced (for
                 example, while being used in a 
pthread_cond_wait() or                 
pthread_cond_timedwait()) by another thread.       
EINVAL                 The value specified by 
cond is invalid.
ATTRIBUTES
       See 
attributes(7) for descriptions of the following attributes:
       +--------------------+-----------------+
       |  ATTRIBUTE TYPE    | ATTRIBUTE VALUE |
       +--------------------+-----------------+
       |Interface Stability | Standard        |
       +--------------------+-----------------+
       |MT-Level            | MT-Safe         |
       +--------------------+-----------------+
SEE ALSO
       pthread_cond_broadcast(3C), 
pthread_cond_signal(3C),       
pthread_cond_timedwait(3C), 
pthread_cond_wait(3C),       
pthread_condattr_init(3C), 
attributes(7), 
condition(7), 
standards(7)                               March 23, 2005          PTHREAD_COND_INIT(3C)