From fed4d7017f673bea41b52a469ce8b1ad398abd5f Mon Sep 17 00:00:00 2001 From: "dveditz%cruzio.com" Date: Wed, 19 Nov 2008 07:16:19 +0000 Subject: [PATCH] bug 460993 prevent external-app deadlock on unix. patch=Jason Evans, r=pavlov, a=dveditz git-svn-id: svn://10.0.0.236/trunk@255117 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/memory/jemalloc/jemalloc.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/mozilla/memory/jemalloc/jemalloc.c b/mozilla/memory/jemalloc/jemalloc.c index 22a979bb819..0daedea8d4f 100644 --- a/mozilla/memory/jemalloc/jemalloc.c +++ b/mozilla/memory/jemalloc/jemalloc.c @@ -1199,6 +1199,9 @@ static #endif bool malloc_init_hard(void); +void _malloc_prefork(void); +void _malloc_postfork(void); + /* * End function prototypes. */ @@ -5489,6 +5492,11 @@ MALLOC_OUT: #endif } +#if (!defined(MOZ_MEMORY_WINDOWS) && !defined(MOZ_MEMORY_DARWIN)) + /* Prevent potential deadlock on malloc locks after fork. */ + pthread_atfork(_malloc_prefork, _malloc_postfork, _malloc_postfork); +#endif + /* Set variables according to the value of opt_small_max_2pow. */ if (opt_small_max_2pow < opt_quantum_2pow) opt_small_max_2pow = opt_quantum_2pow;