mirror of
https://github.com/jemalloc/jemalloc.git
synced 2026-04-21 10:22:30 +03:00
Pull tcache GC events into thread event handler
This commit is contained in:
parent
198f02e797
commit
97f93fa0f2
8 changed files with 34 additions and 12 deletions
|
|
@ -2350,10 +2350,6 @@ je_malloc(size_t size) {
|
|||
|
||||
tcache_t *tcache = tsd_tcachep_get(tsd);
|
||||
|
||||
if (unlikely(ticker_trytick(&tcache->gc_ticker))) {
|
||||
return malloc_default(size);
|
||||
}
|
||||
|
||||
szind_t ind = sz_size2index_lookup(size);
|
||||
/*
|
||||
* The thread_allocated counter in tsd serves as a general purpose
|
||||
|
|
|
|||
|
|
@ -18,6 +18,17 @@ static void thread_##event##_event_handler(tsd_t *tsd);
|
|||
ITERATE_OVER_ALL_EVENTS
|
||||
#undef E
|
||||
|
||||
static void
|
||||
thread_tcache_gc_event_handler(tsd_t *tsd) {
|
||||
assert(TCACHE_GC_INCR_BYTES > 0);
|
||||
assert(tcache_gc_event_wait_get(tsd) == 0U);
|
||||
thread_tcache_gc_event_update(tsd, TCACHE_GC_INCR_BYTES);
|
||||
tcache_t *tcache = tcache_get(tsd);
|
||||
if (tcache != NULL) {
|
||||
tcache_event_hard(tsd, tcache);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
thread_prof_sample_event_handler(tsd_t *tsd) {
|
||||
assert(config_prof && opt_prof);
|
||||
|
|
|
|||
|
|
@ -233,6 +233,10 @@ tsd_data_init(tsd_t *tsd) {
|
|||
*tsd_offset_statep_get(tsd) = config_debug ? 0 :
|
||||
(uint64_t)(uintptr_t)tsd;
|
||||
|
||||
if (TCACHE_GC_INCR_BYTES > 0) {
|
||||
thread_tcache_gc_event_update(tsd, TCACHE_GC_INCR_BYTES);
|
||||
}
|
||||
|
||||
return tsd_tcache_enabled_data_init(tsd);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue