提交 8f4a115e 编写于 作者: R Rich Felker

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...
上级 f0a8d60d
......@@ -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();
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册