From b0f756777ce0d95465333bfdf478faab477dc996 Mon Sep 17 00:00:00 2001 From: Alistair Smith Date: Wed, 28 May 2025 00:33:50 -0700 Subject: [PATCH] use .fetch_or() --- src/bun.js/bindings/webcore/Worker.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/bun.js/bindings/webcore/Worker.cpp b/src/bun.js/bindings/webcore/Worker.cpp index f589a391c3..e2709f8381 100644 --- a/src/bun.js/bindings/webcore/Worker.cpp +++ b/src/bun.js/bindings/webcore/Worker.cpp @@ -262,9 +262,8 @@ ExceptionOr Worker::postMessage(JSC::JSGlobalObject& state, JSC::JSValue m void Worker::terminate() { - - // Don't try to terminate an already terminated worker - if (m_terminationFlags & TerminatedFlag) { + // Atomically set the TerminateRequestedFlag, and only proceed if the worker wasn't already terminated + if (m_terminationFlags.fetch_or(TerminatedFlag) & TerminatedFlag) { return; }