Fix bootstrapping order bug.
Initialize arenas_tsd earlier, so that the non-TLS case works when profiling is enabled.
This commit is contained in:
parent
47e57f9bda
commit
c957398b4f
@ -797,6 +797,11 @@ malloc_init_hard(void)
|
|||||||
if (malloc_mutex_init(&arenas_lock))
|
if (malloc_mutex_init(&arenas_lock))
|
||||||
return (true);
|
return (true);
|
||||||
|
|
||||||
|
if (pthread_key_create(&arenas_tsd, arenas_cleanup) != 0) {
|
||||||
|
malloc_mutex_unlock(&init_lock);
|
||||||
|
return (true);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef JEMALLOC_PROF
|
#ifdef JEMALLOC_PROF
|
||||||
if (prof_boot2()) {
|
if (prof_boot2()) {
|
||||||
malloc_mutex_unlock(&init_lock);
|
malloc_mutex_unlock(&init_lock);
|
||||||
@ -835,11 +840,6 @@ malloc_init_hard(void)
|
|||||||
malloc_write(")\n");
|
malloc_write(")\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pthread_key_create(&arenas_tsd, arenas_cleanup) != 0) {
|
|
||||||
malloc_mutex_unlock(&init_lock);
|
|
||||||
return (true);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Allocate and initialize arenas. */
|
/* Allocate and initialize arenas. */
|
||||||
arenas = (arena_t **)base_alloc(sizeof(arena_t *) * narenas);
|
arenas = (arena_t **)base_alloc(sizeof(arena_t *) * narenas);
|
||||||
if (arenas == NULL) {
|
if (arenas == NULL) {
|
||||||
|
Loading…
Reference in New Issue
Block a user