-
Andreas Haas authored
On the PredictablePlatform, worker tasks were executed immediately instead of posting them in a task queue first. This approach caused problems because the execution of the worker task blocked progress of the posting task, and the worker task was always executed in the context of the posting task, e.g. with an already open HandleScope. With this CL, worker tasks get posted into the foreground task queue of the nullptr isolate instead of executing them immediately. The tasks of the nullptr isolate are then executed after a task of some other task queue is executed. As the worker tasks are thereby executed on the same thread as foreground tasks, the behavior is deterministic. A consequence of this approach is that each pumping the message loop of an Isolate may also execute other Isolate's background tasks. This approach is needed because we don't have a BackgroundTaskRunner but merely a CallOnWorkerThread method that doesn't know which Isolate the task corresponds to. R=clemensb@chromium.org, mlippautz@chromium.org Bug: v8:9670 Change-Id: I6847ae042146431bc2376d27280be8829f529b95 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2182453 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#67616}
d6a02c02