Upon successful initialisation, the state of the condition variable becomes initialised. Attempting to initialise an already initialised condition variable results in undefined behaviour. It is safe to destroy an initialised 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 behaviour. Otherwise, an error number is returned to indicate the error.
Insufficient memory exists to initialise the condition variable.
The implementation has detected an attempt to re-initialise the object referenced by cond , a previously initialised, but not yet destroyed, condition variable. The value specified by attr is invalid. The value specified by cond is invalid.