Condition variables must be declared with type
pthread_cond_t, and must be initialized before they can be used. There are two ways to initialize a condition variable:
pthread_cond_t myconvar = PTHREAD_COND_INITIALIZER;
pthread_cond_init()routine. The ID of the created condition variable is returned to the calling thread through the condition parameter. This method permits setting condition variable object attributes, attr.
The optional attr object is used to set condition variable attributes. There is only one attribute defined for condition variables: process-shared, which allows the condition variable to be seen by threads in other processes. The attribute object, if used, must be of type
pthread_condattr_t (may be specified as NULL to accept defaults).
Note that not all implementations may provide the process-shared attribute.
pthread_condattr_destroy() routines are used to create and destroy condition variable attribute objects.
pthread_cond_destroy() should be used to free a condition variable that is no longer needed.