| 216 | } |
| 217 | |
| 218 | static bool |
| 219 | tsd_data_init(tsd_t *tsd) { |
| 220 | /* |
| 221 | * We initialize the rtree context first (before the tcache), since the |
| 222 | * tcache initialization depends on it. |
| 223 | */ |
| 224 | rtree_ctx_data_init(tsd_rtree_ctxp_get_unsafe(tsd)); |
| 225 | |
| 226 | /* |
| 227 | * A nondeterministic seed based on the address of tsd reduces |
| 228 | * the likelihood of lockstep non-uniform cache index |
| 229 | * utilization among identical concurrent processes, but at the |
| 230 | * cost of test repeatability. For debug builds, instead use a |
| 231 | * deterministic seed. |
| 232 | */ |
| 233 | *tsd_offset_statep_get(tsd) = config_debug ? 0 : |
| 234 | (uint64_t)(uintptr_t)tsd; |
| 235 | |
| 236 | return tsd_tcache_enabled_data_init(tsd); |
| 237 | } |
| 238 | |
| 239 | static void |
| 240 | assert_tsd_data_cleanup_done(tsd_t *tsd) { |
no test coverage detected