diff options
author | Jason Evans <jasone@canonware.com> | 2016-04-26 17:47:22 (GMT) |
---|---|---|
committer | Jason Evans <jasone@canonware.com> | 2016-04-26 17:47:22 (GMT) |
commit | 108c4a11e96d57fd71751efa23ab986a236a0c7d (patch) | |
tree | 4b114e09628d921d3da62095ec4a5c1d5d5ec3e6 /src/jemalloc.c | |
parent | 174c0c3a9c63b3a0bfa32381148b537e9b9af96d (diff) | |
download | jemalloc-108c4a11e96d57fd71751efa23ab986a236a0c7d.zip jemalloc-108c4a11e96d57fd71751efa23ab986a236a0c7d.tar.gz jemalloc-108c4a11e96d57fd71751efa23ab986a236a0c7d.tar.bz2 |
Fix witness/fork() interactions.
Fix witness to clear its list of owned mutexes in the child if
platform-specific malloc_mutex code re-initializes mutexes rather than
unlocking them.
Diffstat (limited to 'src/jemalloc.c')
-rw-r--r-- | src/jemalloc.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/jemalloc.c b/src/jemalloc.c index a7acf5f..cd97ea1 100644 --- a/src/jemalloc.c +++ b/src/jemalloc.c @@ -2770,8 +2770,8 @@ _malloc_prefork(void) narenas = narenas_total_get(); - /* Acquire all mutexes in a safe order. */ witness_prefork(tsd); + /* Acquire all mutexes in a safe order. */ ctl_prefork(tsd); malloc_mutex_prefork(tsd, &arenas_lock); prof_prefork0(tsd); @@ -2815,6 +2815,7 @@ _malloc_postfork(void) tsd = tsd_fetch(); + witness_postfork_parent(tsd); /* Release all mutexes, now that fork() has completed. */ chunk_postfork_parent(tsd); base_postfork_parent(tsd); @@ -2827,7 +2828,6 @@ _malloc_postfork(void) prof_postfork_parent(tsd); malloc_mutex_postfork_parent(tsd, &arenas_lock); ctl_postfork_parent(tsd); - witness_postfork(tsd); } void @@ -2840,6 +2840,7 @@ jemalloc_postfork_child(void) tsd = tsd_fetch(); + witness_postfork_child(tsd); /* Release all mutexes, now that fork() has completed. */ chunk_postfork_child(tsd); base_postfork_child(tsd); @@ -2852,7 +2853,6 @@ jemalloc_postfork_child(void) prof_postfork_child(tsd); malloc_mutex_postfork_child(tsd, &arenas_lock); ctl_postfork_child(tsd); - witness_postfork(tsd); } /******************************************************************************/ |