Skip to content

Bump JsRuntimeHost to fix WorkQueue destructor deadlock - #1654

Merged
bghgary merged 2 commits into
masterfrom
chore/bump-jsruntimehost
Apr 8, 2026
Merged

Bump JsRuntimeHost to fix WorkQueue destructor deadlock#1654
bghgary merged 2 commits into
masterfrom
chore/bump-jsruntimehost

Conversation

@bghgary

@bghgary bghgary commented Apr 7, 2026

Copy link
Copy Markdown
Contributor

Bump JsRuntimeHost to include the fix for a race condition in WorkQueue::~WorkQueue() where cancel() + notify_all() could miss condition_variable::wait(), causing a deadlock on thread join during shutdown.

See BabylonJS/JsRuntimeHost#147 for full details and threading diagrams.

bghgary and others added 2 commits April 7, 2026 16:52
Updates JsRuntimeHost to include the fix for a race condition in
WorkQueue::~WorkQueue() where cancel() + notify_all() could miss
condition_variable::wait(), causing a deadlock on thread join.

See BabylonJS/JsRuntimeHost#147 for details.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings April 7, 2026 23:52

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the Babylon Native dependency pin for JsRuntimeHost to pull in an upstream fix for a shutdown deadlock in WorkQueue::~WorkQueue() (race between cancel() / notify_all() and condition_variable::wait()), aligning this repo with BabylonJS/JsRuntimeHost#147.

Changes:

  • Bump JsRuntimeHost FetchContent_Declare GIT_TAG to a newer commit that includes the WorkQueue destructor deadlock fix.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@bghgary
bghgary merged commit 5ac626c into master Apr 8, 2026
31 checks passed
@bghgary
bghgary deleted the chore/bump-jsruntimehost branch April 14, 2026 19:32
bkaradzic-microsoft pushed a commit to bkaradzic-microsoft/BabylonNative that referenced this pull request Jul 16, 2026
…(idx 124/125/287/299)

The SPIRV-Cross HLSL transpile assert cluster (TPC issues BabylonJS#1601/BabylonJS#1602/BabylonJS#1603/
BabylonJS#1604/BabylonJS#1654, all now CLOSED+Done) was resolved by disabling WebMin
(BABYLON_NATIVE_DISABLE_WEBMIN=ON undefines SPIRV_CROSS_WEBMIN, so OpFMod and
the other trimmed HLSL ops no longer compile to SPIRV_CROSS_INVALID_CALL asserts).

Empirically re-tested all affected indices plus every still-excluded test with a
crash/assert/compile reason: zero crashes remain. Swept the 4 tests still carrying
stale crash exclusion reasons that now pass on Win32/D3D11:
- 124/125 IES Profile (were 'crashes or hangs')
- 287 Prepass SSAO + particles (was 'SSAO2 blur fails to compile')
- 299 Prepass SSAO + GUI (was 'order-dependent state leak')

Full regression: 424/424 enabled tests pass, zero regressions; 299's documented
order-dependent leak did not reproduce in the full single-process sweep.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 60c2ec68-6de1-445d-9fc9-b699db737eae
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants