[webkit-changes] [WebKit/WebKit] dea928: [JSC] Fix Atomics.wait by handling termination cases

Yijia Huang noreply at github.com
Fri Aug 30 08:52:48 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: dea928b186e9bd4da26e7bb09a7c6e8e013ac5e4
      https://github.com/WebKit/WebKit/commit/dea928b186e9bd4da26e7bb09a7c6e8e013ac5e4
  Author: Yijia Huang <yijia_huang at apple.com>
  Date:   2024-08-30 (Fri, 30 Aug 2024)

  Changed paths:
    M Source/JavaScriptCore/runtime/AtomicsObject.cpp
    M Source/JavaScriptCore/runtime/VMTraps.cpp
    M Source/JavaScriptCore/runtime/WaiterListManager.cpp
    M Source/JavaScriptCore/runtime/WaiterListManager.h

  Log Message:
  -----------
  [JSC] Fix Atomics.wait by handling termination cases
https://bugs.webkit.org/show_bug.cgi?id=278866
rdar://129234981

Reviewed by Yusuke Suzuki.

Atomics.wait is used in worker threads. It should handle
termination cases; otherwise, a memory leak can occur when
the worker threads are waiting with an infinite timeout
while the threads are signaled for termination.

* Source/JavaScriptCore/runtime/AtomicsObject.cpp:
(JSC::atomicsWaitImpl):
* Source/JavaScriptCore/runtime/VM.cpp:
(JSC::VM::hasSyncWaiter):
(JSC::VM::syncWaiter):
* Source/JavaScriptCore/runtime/VM.h:
* Source/JavaScriptCore/runtime/VMTraps.cpp:
(JSC::VMTraps::fireTrap):
* Source/JavaScriptCore/runtime/WaiterListManager.cpp:
(JSC::WaiterListManager::waitSyncImpl):
(JSC::WaiterListManager::notifyWaiterImpl):
(JSC::WaiterListManager::unregister):
* Source/JavaScriptCore/runtime/WaiterListManager.h:

Canonical link: https://commits.webkit.org/282974@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