提交 dd0a23dd 编写于 作者: R Rich Felker

fix unsynchronized decrement of thread count on pthread_create error

commit 8f11e612 wrongly documented
that all changes to libc.threads_minus_1 were guarded by the thread
list lock, but the decrement for failed SYS_clone took place after the
thread list lock was released.
上级 a882841b
......@@ -356,13 +356,14 @@ int __pthread_create(pthread_t *restrict res, const pthread_attr_t *restrict att
new->prev = self;
new->next->prev = new;
new->prev->next = new;
} else {
libc.threads_minus_1--;
}
__tl_unlock();
__restore_sigs(&set);
__release_ptc();
if (ret < 0) {
libc.threads_minus_1--;
if (map) __munmap(map, size);
return EAGAIN;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册