From 36f20177775ae2ba18265815cc20e24b882d971f Mon Sep 17 00:00:00 2001 From: Farid Zakaria Date: Thu, 2 Jul 2026 13:00:35 -0700 Subject: [PATCH] Keep TSD bootstrap reentrant until data init completes --- src/tsd.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/tsd.c b/src/tsd.c index 9c05e17f..ff023a21 100644 --- a/src/tsd.c +++ b/src/tsd.c @@ -182,7 +182,9 @@ tsd_fetch_slow(tsd_t *tsd, bool minimal) { tsd_slow_update(tsd); /* Trigger cleanup handler registration. */ tsd_set(tsd); + tsd_pre_reentrancy_raw(tsd); tsd_data_init(tsd); + tsd_post_reentrancy_raw(tsd); } } else { tsd_state_set(tsd, tsd_state_minimal_initialized); @@ -210,9 +212,9 @@ tsd_fetch_slow(tsd_t *tsd, bool minimal) { /* Switch to fully initialized. */ tsd_state_set(tsd, tsd_state_nominal); assert(*tsd_reentrancy_levelp_get(tsd) >= 1); - (*tsd_reentrancy_levelp_get(tsd))--; tsd_slow_update(tsd); tsd_data_init(tsd); + tsd_post_reentrancy_raw(tsd); } else { assert_tsd_data_cleanup_done(tsd); }