diff options
author | Qi Wang <interwq@gwu.edu> | 2017-06-02 23:27:05 (GMT) |
---|---|---|
committer | Qi Wang <interwq@gmail.com> | 2017-06-05 17:56:25 (GMT) |
commit | 3a813946fb9b0ad93279ea30834df917b261a5a5 (patch) | |
tree | 47bf3ff155c1486631b8a48f08e64f1f1eddf777 /src/extent.c | |
parent | 530c07a45ba3ea744b280c9df5d94165839f7b09 (diff) | |
download | jemalloc-3a813946fb9b0ad93279ea30834df917b261a5a5.zip jemalloc-3a813946fb9b0ad93279ea30834df917b261a5a5.tar.gz jemalloc-3a813946fb9b0ad93279ea30834df917b261a5a5.tar.bz2 |
Take background thread lock when setting extent hooks.
Diffstat (limited to 'src/extent.c')
-rw-r--r-- | src/extent.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/extent.c b/src/extent.c index fb7a146..e95858e 100644 --- a/src/extent.c +++ b/src/extent.c @@ -197,8 +197,18 @@ extent_hooks_get(arena_t *arena) { } extent_hooks_t * -extent_hooks_set(arena_t *arena, extent_hooks_t *extent_hooks) { - return base_extent_hooks_set(arena->base, extent_hooks); +extent_hooks_set(tsd_t *tsd, arena_t *arena, extent_hooks_t *extent_hooks) { + background_thread_info_t *info; + if (have_background_thread) { + info = arena_background_thread_info_get(arena); + malloc_mutex_lock(tsd_tsdn(tsd), &info->mtx); + } + extent_hooks_t *ret = base_extent_hooks_set(arena->base, extent_hooks); + if (have_background_thread) { + malloc_mutex_unlock(tsd_tsdn(tsd), &info->mtx); + } + + return ret; } static void |