mirror of
https://github.com/jemalloc/jemalloc.git
synced 2026-06-22 20:05:39 +03:00
Integrate auto tcache into TSD.
The embedded tcache is initialized upon tsd initialization. The avail arrays for the tbins will be allocated / deallocated accordingly during init / cleanup. With this change, the pointer to the auto tcache will always be available, as long as we have access to the TSD. tcache_available() (called in tcache_get()) is provided to check if we should use tcache.
This commit is contained in:
parent
eeabdd2466
commit
fde3e20cc0
16 changed files with 300 additions and 178 deletions
|
|
@ -16,7 +16,7 @@ struct tsd_init_head_s {
|
|||
|
||||
#define MALLOC_TSD \
|
||||
/* O(name, type, [gs]et, init, cleanup) */ \
|
||||
O(tcache, tcache_t *, yes, no, yes) \
|
||||
O(tcache, tcache_t, yes, no, yes) \
|
||||
O(thread_allocated, uint64_t, yes, no, no) \
|
||||
O(thread_deallocated, uint64_t, yes, no, no) \
|
||||
O(prof_tdata, prof_tdata_t *, yes, no, yes) \
|
||||
|
|
@ -26,7 +26,7 @@ struct tsd_init_head_s {
|
|||
O(narenas_tdata, unsigned, yes, no, no) \
|
||||
O(arenas_tdata_bypass, bool, no, no, no) \
|
||||
O(tcache_enabled, tcache_enabled_t, \
|
||||
yes, no, no) \
|
||||
yes, yes, no) \
|
||||
O(rtree_ctx, rtree_ctx_t, no, yes, no) \
|
||||
O(witnesses, witness_list_t, no, no, yes) \
|
||||
O(rtree_leaf_elm_witnesses, rtree_leaf_elm_witness_tsd_t, \
|
||||
|
|
@ -35,7 +35,7 @@ struct tsd_init_head_s {
|
|||
|
||||
#define TSD_INITIALIZER { \
|
||||
tsd_state_uninitialized, \
|
||||
NULL, \
|
||||
TCACHE_ZERO_INITIALIZER, \
|
||||
0, \
|
||||
0, \
|
||||
NULL, \
|
||||
|
|
@ -69,6 +69,7 @@ struct tsdn_s {
|
|||
};
|
||||
|
||||
static const tsd_t tsd_initializer = TSD_INITIALIZER;
|
||||
UNUSED static const void *malloc_tsd_no_cleanup = (void *)0;
|
||||
|
||||
malloc_tsd_types(, tsd_t)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue