From f09e7ac6306726578b5200b7651c2660e093802c Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Wed, 10 Aug 2022 17:40:17 -0700 Subject: improve reliability of `WebSocket` - Fix GC not keeping WebSocket alive - Fix ignoring messages sent immediately after upgrade Fixes https://github.com/oven-sh/bun/issues/521 --- src/bun.js/bindings/webcore/JSWebSocket.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/bun.js/bindings/webcore/JSWebSocket.cpp') diff --git a/src/bun.js/bindings/webcore/JSWebSocket.cpp b/src/bun.js/bindings/webcore/JSWebSocket.cpp index aa351fba3..f140c365d 100644 --- a/src/bun.js/bindings/webcore/JSWebSocket.cpp +++ b/src/bun.js/bindings/webcore/JSWebSocket.cpp @@ -633,11 +633,11 @@ bool JSWebSocketOwner::isReachableFromOpaqueRoots(JSC::Handle hand { auto* jsWebSocket = jsCast(handle.slot()->asCell()); auto& wrapped = jsWebSocket->wrapped(); - // if (!wrapped.isContextStopped() && wrapped.hasPendingActivity()) { - // if (UNLIKELY(reason)) - // *reason = "ActiveDOMObject with pending activity"; - // return true; - // } + if (wrapped.hasPendingActivity()) { + if (UNLIKELY(reason)) + *reason = "ActiveDOMObject with pending activity"; + return true; + } if (jsWebSocket->wrapped().isFiringEventListeners()) { if (UNLIKELY(reason)) *reason = "EventTarget firing event listeners"; -- cgit v1.2.3