pthread_barrier_destroy.c 271 B

123456789101112131415
  1. #include "pthread_impl.h"
  2. int pthread_barrier_destroy(pthread_barrier_t *b)
  3. {
  4. if (b->_b_limit < 0) {
  5. if (b->_b_lock) {
  6. int v;
  7. a_or(&b->_b_lock, INT_MIN);
  8. while ((v = b->_b_lock) & INT_MAX)
  9. __wait(&b->_b_lock, 0, v, 0);
  10. }
  11. __vm_wait();
  12. }
  13. return 0;
  14. }