commit
8f11e6127fe93093f81a52b15bb1537edc3fc8af 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.
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;
}