Problem
The final tsan-threadfuzz-midgc job in main run https://github.com/zig-utils/zig-js/actions/runs/29384313843/job/87254333183 failed for seed 1 with:
worker terminate/ThreadLocal asyncHold waiters did not reject after midgc releaseThis resembles #107 but has a different cause. The witness gives its property waiter a 12-second timeout under TSan, then performs allocation and parallel-GC pressure before the deliberate release. A loaded runner can let that wait time out and reject early. beforeWaiterReject includes the early rejection, so the later delta oracle incorrectly waits for two additional waiter rejections even though only the condition waiter remains.
The exact focused TSan seed passes locally, consistent with a machine-speed-dependent test race rather than a deterministic runtime regression.
Scope
- make the mid-GC property/TLS waits indefinite and rely on the existing bounded per-case watchdog
- assert that no rejection settled before the deliberate release
- replay the exact focused TSan seed
- run the relevant formatter/build check and use the next combined main gate for the expensive full matrix
Discovered while validating #109; benchmark/runtime behavior is unchanged.