Cache bin: Add a debug method for init checking.
This commit is contained in:
parent
370c1ea007
commit
6a7aa46ef7
@ -354,4 +354,11 @@ void cache_bin_postincrement(cache_bin_info_t *infos, szind_t ninfos,
|
|||||||
void cache_bin_init(cache_bin_t *bin, cache_bin_info_t *info, void *alloc,
|
void cache_bin_init(cache_bin_t *bin, cache_bin_info_t *info, void *alloc,
|
||||||
size_t *cur_offset);
|
size_t *cur_offset);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If a cache bin was zero initialized (either because it lives in static or
|
||||||
|
* thread-local storage, or was memset to 0), this function indicates whether or
|
||||||
|
* not cache_bin_init was called on it.
|
||||||
|
*/
|
||||||
|
bool cache_bin_still_zero_initialized(cache_bin_t *bin);
|
||||||
|
|
||||||
#endif /* JEMALLOC_INTERNAL_CACHE_BIN_H */
|
#endif /* JEMALLOC_INTERNAL_CACHE_BIN_H */
|
||||||
|
@ -130,8 +130,8 @@ tcache_available(tsd_t *tsd) {
|
|||||||
if (likely(tsd_tcache_enabled_get(tsd))) {
|
if (likely(tsd_tcache_enabled_get(tsd))) {
|
||||||
/* Associated arena == NULL implies tcache init in progress. */
|
/* Associated arena == NULL implies tcache init in progress. */
|
||||||
assert(tsd_tcachep_get(tsd)->arena == NULL ||
|
assert(tsd_tcachep_get(tsd)->arena == NULL ||
|
||||||
tcache_small_bin_get(tsd_tcachep_get(tsd), 0)->cur_ptr.ptr
|
!cache_bin_still_zero_initialized(
|
||||||
!= NULL);
|
tcache_small_bin_get(tsd_tcachep_get(tsd), 0)));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -102,3 +102,8 @@ cache_bin_init(cache_bin_t *bin, cache_bin_info_t *info, void *alloc,
|
|||||||
assert(cache_bin_ncached_get(bin, info) == 0);
|
assert(cache_bin_ncached_get(bin, info) == 0);
|
||||||
assert(cache_bin_empty_position_get(bin, info) == empty_position);
|
assert(cache_bin_empty_position_get(bin, info) == empty_position);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
cache_bin_still_zero_initialized(cache_bin_t *bin) {
|
||||||
|
return bin->cur_ptr.ptr == NULL;
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user