Revert "[wasm] Enter CallDepthScope after compilation to execute microtasks"
This reverts commit b1f896337d
.
Reason for revert: This causes a crash with streaming compilation when the stream gets aborted because the context gets destroyed, e.g. when a worker gets killed early.
Original change's description:
> [wasm] Enter CallDepthScope after compilation to execute microtasks
>
> When async compilation finishes for WebAssembly, the promise returned by
> `WebAssembly.compile()` gets resolved. Resolving the promise creates a
> microtask that should get executed automatically when the call stack
> empties up when MicrotasksPolicy::kAuto is used. However, this policy
> requires a CallDepthScope to work, but there is no CallDepthScope when
> WebAssembly compilation finishes. This CL adds this CallDepthScope.
>
> R=jkummerow@chromium.org
>
> Bug: chromium:1297672
> Change-Id: I1bd607dec9daf08b3dbb1294393a8af255d222ff
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3679579
> Auto-Submit: Andreas Haas <ahaas@chromium.org>
> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#80872}
Bug: chromium:1297672, chromium:1335042
Change-Id: I1f186a7f17f007a448ca7188bd32605a4fc03497
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3695359
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#81040}
This commit is contained in:
parent
cda9a103de
commit
193b82553e
@ -2313,14 +2313,6 @@ void AsyncCompileJob::AsyncCompileSucceeded(Handle<WasmModuleObject> result) {
|
||||
// the module's start function calls out to Blink.
|
||||
Local<v8::Context> backup_incumbent_context =
|
||||
Utils::ToLocal(incumbent_context_);
|
||||
// We have to enter a MicrotasksScope here, because the
|
||||
// CompilationResultResolver potentially creates a Microtask below in
|
||||
// {OnCompilationSucceeded}.
|
||||
MicrotasksScope microtasks_scope(reinterpret_cast<v8::Isolate*>(isolate()),
|
||||
MicrotasksScope::kRunMicrotasks);
|
||||
// Enter a {CallDepthScope} explicitly, because we did not go through
|
||||
// {ENTER_V8}, and otherwise MicrotasksPolicy::kAuto does not work.
|
||||
CallDepthScope<true> call_depth_scope(isolate(), backup_incumbent_context);
|
||||
v8::Context::BackupIncumbentScope incumbent(backup_incumbent_context);
|
||||
resolver_->OnCompilationSucceeded(result);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user