[wasm][gc] Finish current GC only once per isolate shutdown

R=clemensh@chromium.org

Also-By: clemensh@chromium.org
Bug: v8:9288, v8:8217
Change-Id: I1b4b7b5f06c49a6047d98a3a5db8bfa0c277be09
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1627981
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61822}
This commit is contained in:
Andreas Haas 2019-05-24 11:24:02 +02:00 committed by Commit Bot
parent cca5e7ff9c
commit 50ec11f157

View File

@ -586,9 +586,11 @@ void WasmEngine::RemoveIsolate(Isolate* isolate) {
for (WasmCode* code : info->potentially_dead_code) {
current_gc_info_->dead_code.erase(code);
}
if (RemoveIsolateFromCurrentGC(isolate)) PotentiallyFinishCurrentGC();
}
}
if (current_gc_info_) {
if (RemoveIsolateFromCurrentGC(isolate)) PotentiallyFinishCurrentGC();
}
if (auto* task = info->log_codes_task) task->Cancel();
if (!info->code_to_log.empty()) {
WasmCode::DecrementRefCount(VectorOf(info->code_to_log));