Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 1946d2619f35c5ad9ff6505a3a79fb06fb94a53b https://github.com/WebKit/WebKit/commit/1946d2619f35c5ad9ff6505a3a79fb06fb94a53b Author: Chris Dumez <cdu...@apple.com> Date: 2024-10-12 (Sat, 12 Oct 2024)
Changed paths: M Source/JavaScriptCore/runtime/JSGlobalObjectDebuggable.cpp M Source/JavaScriptCore/runtime/JSGlobalObjectDebuggable.h Log Message: ----------- Regression(280938.63@safari-7619-branch) WeChat may hang in callOnGlobalObjectRunLoopAndWait() https://bugs.webkit.org/show_bug.cgi?id=277435 rdar://132773444 Reviewed by Ryosuke Niwa. Just doing a partial revert of 280938.63@safari-7619-branch for now to resolve the issue. We no longer try to dispatch to the JSGlobalObject's runloop before using the JSGlobalObject. This should restore shipping behavior. Based on initial investigation, the app seems to sometimes create a JSGlobalObject on thread A, then later use that JSGlobalObject on the main thread. This causes us to call `callOnGlobalObjectRunLoopAndWait()`, which tries to dispatch on thread A's runloop, and waits on a BinarySemaphore until the task has been processed on the other runloop. However, this task is sometimes not executed and we just hang on the BinarySemaphore. I suspect thread A may have exited. Since `callOnGlobalObjectRunLoopAndWait()` seems unreliable, we now stop using it. * Source/JavaScriptCore/runtime/JSGlobalObjectDebuggable.cpp: (JSC::JSGlobalObjectDebuggable::JSGlobalObjectDebuggable): (JSC::JSGlobalObjectDebuggable::name const): (JSC::JSGlobalObjectDebuggable::connect): (JSC::JSGlobalObjectDebuggable::disconnect): (JSC::JSGlobalObjectDebuggable::dispatchMessageFromRemote): (JSC::JSGlobalObjectDebuggable::pauseWaitingForAutomaticInspection): (JSC::JSGlobalObjectDebuggable::callOnGlobalObjectRunLoopAndWait const): Deleted. * Source/JavaScriptCore/runtime/JSGlobalObjectDebuggable.h: Originally-landed-as: 6fc69ba54d92. rdar://136108635 Canonical link: https://commits.webkit.org/285066@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes