pthread_cond_destroy.c raw

   1  #include "pthread_impl.h"
   2  
   3  int pthread_cond_destroy(pthread_cond_t *c)
   4  {
   5  	if (c->_c_shared && c->_c_waiters) {
   6  		int cnt;
   7  		a_or(&c->_c_waiters, 0x80000000);
   8  		a_inc(&c->_c_seq);
   9  		__wake(&c->_c_seq, -1, 0);
  10  		while ((cnt = c->_c_waiters) & 0x7fffffff)
  11  			__wait(&c->_c_waiters, 0, cnt, 0);
  12  	}
  13  	return 0;
  14  }
  15