[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