This routine initializes the condition variable cond with
attributes specified in the attr argument. If attr is NULL, the
default condition variable attributes are used.
A condition variable is a synchronization object used in
conjunction with a mutex. A mutex controls access to data that
is shared among threads; a condition variable allows threads to
wait for that data to enter a defined state.
Condition variables are not owned by a particular thread. Any
associated storage is not automatically deallocated when the
creating thread terminates.
Use the macro PTHREAD_COND_INITIALIZER to initialize statically
allocated condition variables to the default condition variable
attributes. To invoke this macro, enter:
pthread_cond_t condition = PTHREAD_COND_INITIALIZER
When statically initialized, a condition variable should not also
be initialized using pthread_cond_init(). Also, a statically
initialized condition variable need not be destroyed using
pthread_cond_destroy().
Under certain circumstances it might be impossible to wait upon
a statically initialized condition variable when the process
virtual address space (or some other memory limit) is nearly
exhausted. In such a case pthread_cond_wait() or pthread_cond_
timedwait() can return [ENOMEM]. To avoid this possibility,
initialize critical condition variables using pthread_cond_
init().