author | Rich Felker <dalias@aerifal.cx> | 2022年10月07日 21:36:25 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2022年10月19日 14:01:32 -0400 |
commit | cf76df0e1fe09b0d504ca650fdaa01df5bf9ab72 (patch) | |
tree | 6a3841d780547892c723d11221aaea3e5fa3f85c /src/process | |
parent | 5ff3eea91fa6bdce25b3a35644433f68e076beca (diff) | |
download | musl-cf76df0e1fe09b0d504ca650fdaa01df5bf9ab72.tar.gz |
-rw-r--r-- | src/process/fork.c | 3 |
diff --git a/src/process/fork.c b/src/process/fork.c index 80e804b1..56f19313 100644 --- a/src/process/fork.c +++ b/src/process/fork.c @@ -37,6 +37,7 @@ static void dummy(int x) { } weak_alias(dummy, __fork_handler); weak_alias(dummy, __malloc_atfork); weak_alias(dummy, __aio_atfork); +weak_alias(dummy, __pthread_key_atfork); weak_alias(dummy, __ldso_atfork); static void dummy_0(void) { } @@ -51,6 +52,7 @@ pid_t fork(void) int need_locks = libc.need_locks > 0; if (need_locks) { __ldso_atfork(-1); + __pthread_key_atfork(-1); __aio_atfork(-1); __inhibit_ptc(); for (int i=0; i<sizeof atfork_locks/sizeof *atfork_locks; i++) @@ -78,6 +80,7 @@ pid_t fork(void) else **atfork_locks[i] = 0; __release_ptc(); if (ret) __aio_atfork(0); + __pthread_key_atfork(!ret); __ldso_atfork(!ret); } __restore_sigs(&set); |