Set reentrancy to 1 for tsd_state_purgatory.

Reentrancy is already set for other non-nominal tsd states (reincarnated and
minimal_initialized).  Add purgatory to be safe and consistent.
This commit is contained in:
Qi Wang 2020-01-16 13:00:35 -08:00 committed by Qi Wang
parent 88b0e03a4e
commit 38a48e5741
2 changed files with 5 additions and 1 deletions

View File

@ -414,7 +414,10 @@ tsd_fetch(void) {
static inline bool static inline bool
tsd_nominal(tsd_t *tsd) { tsd_nominal(tsd_t *tsd) {
return (tsd_state_get(tsd) <= tsd_state_nominal_max); bool nominal = tsd_state_get(tsd) <= tsd_state_nominal_max;
assert(nominal || tsd_reentrancy_level_get(tsd) > 0);
return nominal;
} }
JEMALLOC_ALWAYS_INLINE tsdn_t * JEMALLOC_ALWAYS_INLINE tsdn_t *

View File

@ -376,6 +376,7 @@ tsd_do_data_cleanup(tsd_t *tsd) {
arenas_tdata_cleanup(tsd); arenas_tdata_cleanup(tsd);
tcache_cleanup(tsd); tcache_cleanup(tsd);
witnesses_cleanup(tsd_witness_tsdp_get_unsafe(tsd)); witnesses_cleanup(tsd_witness_tsdp_get_unsafe(tsd));
*tsd_reentrancy_levelp_get(tsd) = 1;
} }
void void