• Clemens Hammacher's avatar
    [wasm] Keep NativeModule alive in BackgroundCompileScope · 3df442d7
    Clemens Hammacher authored
    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: 's avatarAndreas Haas <ahaas@chromium.org>
    Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#60203}
    3df442d7
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
custom_deps Loading commit data...
docs Loading commit data...
gni Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.clang-tidy Loading commit data...
.editorconfig Loading commit data...
.git-blame-ignore-revs Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.vpython Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...