pthread_cond_destroy.c 307 B

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