• Clemens Hammacher's avatar
    [wasm] Fix data race when deleting the CompilationState · d447883b
    Clemens Hammacher authored
    When resetting the {unique_ptr} to the {CompilationState} in the
    {NativeModule}, what actually happens is that first the pointer stored
    in the {unique_ptr} is reset to {nullptr}, then the destructor is
    called.
    The destructor of {CompilationState} cancels and waits for background
    compile jobs. While doing so, background compile jobs still try to
    access the {unique_ptr} in the {NativeModule}.
    
    This CL fixes this race by splitting the shutdown in two steps: First,
    cancel and wait the background compile jobs, and only later reset the
    pointer.
    
    R=ahaas@chromium.org
    
    Bug: v8:8359
    No-Tree-Checks: true
    Change-Id: Ifa3bdf3424dfd5a4712d33f8ca85f9382b1766a6
    Reviewed-on: https://chromium-review.googlesource.com/c/1296486
    Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
    Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#56913}
    d447883b
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...