[webkit-changes] [WebKit/WebKit] 1946d2: Regression(280938.63 at safari-7619-branch) WeChat ma...
Chris Dumez
noreply at github.com
Sat Oct 12 01:00:33 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 1946d2619f35c5ad9ff6505a3a79fb06fb94a53b
https://github.com/WebKit/WebKit/commit/1946d2619f35c5ad9ff6505a3a79fb06fb94a53b
Author: Chris Dumez <cdumez at 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 at 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 at 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
More information about the webkit-changes
mailing list