[webkit-changes] [WebKit/WebKit] aa3a64: [JSC] Wasm should use WaiterListManager for atomics
Yusuke Suzuki
noreply at github.com
Sat Dec 24 12:45:24 PST 2022
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: aa3a64460f0a577d25eb723c77780f067085aa58
https://github.com/WebKit/WebKit/commit/aa3a64460f0a577d25eb723c77780f067085aa58
Author: Yusuke Suzuki <ysuzuki at apple.com>
Date: 2022-12-24 (Sat, 24 Dec 2022)
Changed paths:
M Source/JavaScriptCore/runtime/AtomicsObject.cpp
M Source/JavaScriptCore/runtime/WaiterListManager.cpp
M Source/JavaScriptCore/runtime/WaiterListManager.h
M Source/JavaScriptCore/wasm/WasmOperations.cpp
M Source/JavaScriptCore/wasm/WasmOperations.h
Log Message:
-----------
[JSC] Wasm should use WaiterListManager for atomics
https://bugs.webkit.org/show_bug.cgi?id=249864
rdar://103683992
Reviewed by Mark Lam.
While JS Atomics' wait / notify is changed to use WaiterListManager, Wasm's atomics
is not changed correctly, which causes a bug that Wasm and JS cannot interact each
other with atomics.
1. To make WaiterListManager usable for Wasm, we change sync part of wait. We add
waitSync methods, which does not touch JS related concepts. And JS Atomics.wait
and Wasm wait are rewritten to use it.
2. Wasm notify also uses WaiterListManager's notifyWaiter.
* Source/JavaScriptCore/runtime/AtomicsObject.cpp:
(JSC::atomicsWaitImpl):
* Source/JavaScriptCore/runtime/WaiterListManager.cpp:
(JSC::WaiterListManager::waitSyncImpl):
(JSC::WaiterListManager::waitAsyncImpl):
(JSC::WaiterListManager::waitAsync):
(JSC::WaiterListManager::waitSync):
(JSC::WaiterListManager::waitImpl): Deleted.
(JSC::WaiterListManager::wait): Deleted.
* Source/JavaScriptCore/runtime/WaiterListManager.h:
* Source/JavaScriptCore/wasm/WasmOperations.cpp:
(JSC::Wasm::wait):
(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):
* Source/JavaScriptCore/wasm/WasmOperations.h:
Canonical link: https://commits.webkit.org/258323@main
More information about the webkit-changes
mailing list