mirror of git://git.musl-libc.org/musl
barrier destroy must also wait for threads in other processes exiting barrier
the vm lock only waits for threads in the same process exiting. actually this fix is not enough, but it's a start...
This commit is contained in:
parent
f0a8d60d32
commit
8f4a115e7d
|
@ -5,6 +5,8 @@ void __vm_lock(int), __vm_unlock(void);
|
|||
int pthread_barrier_destroy(pthread_barrier_t *b)
|
||||
{
|
||||
if (b->_b_limit < 0) {
|
||||
int seq = b->_b_seq;
|
||||
if (seq & 1) __wait(&b->_b_seq, 0, seq, 0);
|
||||
__vm_lock(-1);
|
||||
__vm_unlock();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue