test: fix the thread-spawn handshake in the WASI threads fixture · nodejs/node@ce80b32 · GitHub
Skip to content

Commit ce80b32

Browse files
committed
test: fix the thread-spawn handshake in the WASI threads fixture
test-wasi-pthread fails now and then on every platform with "Assertion failed: r == 0 (c/pthread.c: main: 17)", i.e. pthread_create() itself reporting an error. The fixture implements `thread-spawn` by starting a Worker and blocking in Atomics.wait(result, 0, 0, 1000) until the worker signals that it has instantiated the module. Two things go wrong there: the worker signals success by storing 0, the value the main thread is already waiting on, so when the worker is quicker than the main thread its notify is lost and the wait runs into the timeout; and one second is not always enough for a Worker to start and instantiate a threads build on the slower CI hosts (arm debug, Windows, macOS). Either way spawn() returns -6 and wasi-libc turns that into a pthread_create() failure. Wait on a sentinel value that neither outcome writes, and give the worker a platform-scaled 30 seconds. Drop the flaky markers. Fixes: #64226 Refs: #59146 Signed-off-by: Shelley Vohr <shelley.vohr@gmail.com>
1 parent 0de7f6f commit ce80b32

2 files changed

Lines changed: 4 additions & 8 deletions

File tree

‎test/fixtures/wasi-preview-1.js‎

Lines changed: 4 additions & 1 deletion

‎test/wasi/wasi.status‎

Lines changed: 0 additions & 7 deletions

0 commit comments

Comments
 (0)