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

Reply via email to