-
Clemens Hammacher authored
The predictable platform can make tasks deadlock if the spawning task is holding a lock that the spawn task also wants to take. This is because the spawned task is just executed immediately within the "context" of the spawning task. The wasm async compile tests deadlock because the {BackgroundCompileTask}s hold the shared {BackgroundCompileToken} (reader lock) while spawning new tasks via {OnBackgroundTaskStopped} -> {RestartBackgroundTasks}. The new tasks might want to cancel compilation via {BackgroundCompileToken::Cancel}, which takes the writer lock and hence deadlocks. This can not happen on any other platform, since tasks are not nested that way. R=ahaas@chromium.org Bug: v8:9760 No-Try: true Change-Id: I9fc34d5de386aa5c6fdd64a1570fddcff872ec95 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1816502Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#63904}
8ede52ba