@@ -2,7 +2,7 @@
int pthread_cond_broadcast(pthread_cond_t *c)
{
- c->_c_block = 0;
- __wake(&c->_c_block, -1, 0);
+ if (a_swap(&c->_c_block, 0))
+ __wake(&c->_c_block, -1, 0);
return 0;
}
int pthread_cond_signal(pthread_cond_t *c)
- __wake(&c->_c_block, 1, 0);
+ if (a_swap(&c->_c_block, 0));
+ __wake(&c->_c_block, 1, 0);