• 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
..
c-signature.h Loading commit data...
call-tester.h Loading commit data...
code-assembler-tester.h Loading commit data...
codegen-tester.cc Loading commit data...
codegen-tester.h Loading commit data...
function-tester.cc Loading commit data...
function-tester.h Loading commit data...
graph-builder-tester.h Loading commit data...
serializer-tester.cc Loading commit data...
serializer-tester.h Loading commit data...
test-basic-block-profiler.cc Loading commit data...
test-branch-combine.cc Loading commit data...
test-code-assembler.cc Loading commit data...
test-code-generator.cc Loading commit data...
test-gap-resolver.cc Loading commit data...
test-graph-visualizer.cc Loading commit data...
test-instruction-scheduler.cc Loading commit data...
test-instruction.cc Loading commit data...
test-js-constant-cache.cc Loading commit data...
test-js-context-specialization.cc Loading commit data...
test-js-typed-lowering.cc Loading commit data...
test-jump-threading.cc Loading commit data...
test-linkage.cc Loading commit data...
test-loop-analysis.cc Loading commit data...
test-machine-operator-reducer.cc Loading commit data...
test-multiple-return.cc Loading commit data...
test-node.cc Loading commit data...
test-operator.cc Loading commit data...
test-representation-change.cc Loading commit data...
test-run-bytecode-graph-builder.cc Loading commit data...
test-run-calls-to-external-references.cc Loading commit data...
test-run-deopt.cc Loading commit data...
test-run-intrinsics.cc Loading commit data...
test-run-jsbranches.cc Loading commit data...
test-run-jscalls.cc Loading commit data...
test-run-jsexceptions.cc Loading commit data...
test-run-jsobjects.cc Loading commit data...
test-run-jsops.cc Loading commit data...
test-run-load-store.cc Loading commit data...
test-run-machops.cc Loading commit data...
test-run-native-calls.cc Loading commit data...
test-run-retpoline.cc Loading commit data...
test-run-stackcheck.cc Loading commit data...
test-run-tail-calls.cc Loading commit data...
test-run-unwinding-info.cc Loading commit data...
test-run-variables.cc Loading commit data...
value-helper.cc Loading commit data...
value-helper.h Loading commit data...