1 <assertions> 2 <assertion id="1" tag="ref:XSH6:32349:32353"> 3 The function 4 int pthread_cond_destroy(pthread_cond_t *cond); 5 shall destroy the given condition variable specified by cond; 6 the object becomes, in effect, uninitialized. An implementation may cause pthread_cond_destroy() 7 to set the object referenced by cond to an invalid value. A destroyed condition variable object can 8 be reinitialized using pthread_cond_init(); the results of otherwise referencing the object after it 9 has been destroyed are undefined. 10 </assertion> 11 12 <assertion id="2" tag="ref:XSH6:32354:32356"> 13 It shall be safe to destroy an initialized condition variable upon which no threads are currently 14 blocked. Attempting to destroy a condition variable upon which other threads are currently 15 blocked results in undefined behavior. 16 </assertion> 17 18 <assertion id="3" tag="ref:XSH6:32370:32370"> 19 If successful, the pthread_cond_destroy() function shall return zero; 20 </assertion> 21 22 <assertion id="4" tag="ref:XSH6:32376:32380"> 23 The pthread_cond_destroy() function may fail if: 24 [EBUSY] The implementation has detected an attempt to destroy the object referenced 25 by cond while it is referenced (for example, while being used in a 26 pthread_cond_wait() or pthread_cond_timedwait( )) by another thread. 27 [EINVAL] The value specified by cond is invalid. 28 The function shall not return an error code of [EINTR]. 29 </assertion> 30 </assertions> 31