| 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 | } |