summaryrefslogtreecommitdiffstats
path: root/src/jemalloc.c
diff options
context:
space:
mode:
authorJason Evans <jasone@canonware.com>2016-04-26 17:47:22 (GMT)
committerJason Evans <jasone@canonware.com>2016-04-26 17:47:22 (GMT)
commit108c4a11e96d57fd71751efa23ab986a236a0c7d (patch)
tree4b114e09628d921d3da62095ec4a5c1d5d5ec3e6 /src/jemalloc.c
parent174c0c3a9c63b3a0bfa32381148b537e9b9af96d (diff)
downloadjemalloc-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.c6
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);
}
/******************************************************************************/