diff options
-rw-r--r-- | libc/bionic/pthread-atfork.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/libc/bionic/pthread-atfork.c b/libc/bionic/pthread-atfork.c index 3a5189d..42420dc 100644 --- a/libc/bionic/pthread-atfork.c +++ b/libc/bionic/pthread-atfork.c @@ -74,6 +74,7 @@ void __bionic_atfork_run_prepare() void __bionic_atfork_run_child() { struct atfork_t *cursor; + pthread_mutexattr_t attr; /* Call pthread_atfork() child handlers */ for (cursor = atfork_head.cqh_first; @@ -84,7 +85,9 @@ void __bionic_atfork_run_child() } } - pthread_mutex_unlock(&handler_mutex); + pthread_mutexattr_init(&attr); + pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); + pthread_mutex_init(&handler_mutex, &attr); } void __bionic_atfork_run_parent() |