diff --git a/src/thread/pthread_create.c b/src/thread/pthread_create.c index ebf61dedcd3628229de1a6d605e404da90059b10..edaf9a6e2022acfec53dff13b6b535acebfacbea 100644 --- a/src/thread/pthread_create.c +++ b/src/thread/pthread_create.c @@ -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; }