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