Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: aa3a64460f0a577d25eb723c77780f067085aa58
https://github.com/WebKit/WebKit/commit/aa3a64460f0a577d25eb723c77780f067085aa58
Author: Yusuke Suzuki <[email protected]>
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
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes