Scheduling APIs: Implement scheduler.yield() prototype (part 2: inherit)
This CL implements the scheduler.yield() "inherit" option: - Signal selection: GetTaskSignalFromOptions() is updated to take inheritance into account. If either the signal or priority options are to inherit, the inherited signal is retrieved from V8 and used in the computation: - signal: "inherit", priority: unset - use the inherited signal if there is one, otherwise default priority. - signal: "inherit", priority: fixed - create a composite signal from the inherited signal and fixed priority. If the inherited signal is null, just use a fixed priority signal. - signal: unset, priority: "inherit" - if there's nothing to inherit use the default priority; if the inherited signal has fixed priority and can't abort, use that; otherwise create a new composite signal. - DOMTask is updated to support continuation, passing its signal when creating a task scope (main thread). For workers, DOMTask will set the continuation preserved embedder data manually before running the task. - WPT tests are added and modified to cover the "inherit" option. Bug: 979020 Change-Id: Ia9776b9292d70636e2b1eea191e9c09b1809fa84 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4326152 Commit-Queue: Scott Haseley <shaseley@chromium.org> Reviewed-by:Nate Chapin <japhet@chromium.org> Cr-Commit-Position: refs/heads/main@{#1118868}
Loading
Please register or sign in to comment