Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 1946d2619f35c5ad9ff6505a3a79fb06fb94a53b
https://github.com/WebKit/WebKit/commit/1946d2619f35c5ad9ff6505a3a79fb06fb94a53b
Author: Chris Dumez <[email protected]>
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
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes