3df442d738
We need to ensure that the NativeModule stays alive while any {BackgroundCompileScope} exists, because during that time we hold shared ownership of the mutex in the {BackgroundCompileToken}. If the {NativeModule} dies during that period, we would need to get exclusive ownership of the mutex and deadlock. This change requires holding a {std::weak_ptr<NativeModule>} in the BackgroundCompileToken instead of a raw pointer, hence it can only be initialized after the NativeModule was created. This is done via a separate {InitCompilationState} method. R=ahaas@chromium.org Bug: v8:8979 Change-Id: Ia14bd272ea0bc47aec547024da6020608418c9d2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1518178 Auto-Submit: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60203} |
||
---|---|---|
.. | ||
control-transfer-unittest.cc | ||
decoder-unittest.cc | ||
function-body-decoder-unittest.cc | ||
leb-helper-unittest.cc | ||
loop-assignment-analysis-unittest.cc | ||
module-decoder-unittest.cc | ||
OWNERS | ||
streaming-decoder-unittest.cc | ||
trap-handler-posix-unittest.cc | ||
trap-handler-win-unittest.cc | ||
trap-handler-x64-unittest.cc | ||
wasm-code-manager-unittest.cc | ||
wasm-compiler-unittest.cc | ||
wasm-macro-gen-unittest.cc | ||
wasm-module-builder-unittest.cc | ||
wasm-opcodes-unittest.cc |