summaryrefslogtreecommitdiffstats
path: root/src/jemalloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/jemalloc.c')
-rw-r--r--src/jemalloc.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/jemalloc.c b/src/jemalloc.c
index 95cd054..0348b8a 100644
--- a/src/jemalloc.c
+++ b/src/jemalloc.c
@@ -1142,10 +1142,13 @@ malloc_init_hard_needed(void)
}
#ifdef JEMALLOC_THREADED_INIT
if (malloc_initializer != NO_INITIALIZER && !IS_INITIALIZER) {
+ spin_t spinner;
+
/* Busy-wait until the initializing thread completes. */
+ spin_init(&spinner);
do {
malloc_mutex_unlock(TSDN_NULL, &init_lock);
- CPU_SPINWAIT;
+ spin_adaptive(&spinner);
malloc_mutex_lock(TSDN_NULL, &init_lock);
} while (!malloc_initialized());
return (false);