- 22 Mar, 2019 1 commit
-
-
Peter Marshall authored
We were hitting a DCHECK in WaitFor() when rel_time was negative. This was caused when GetNext() recalculated the wait time for a delayed task. In the first part of the loop we moved all delayed tasks which have passed their deadline into the immediate task queue. At the bottom of the loop we assume that all delayed tasks in the queue have a deadline in the future, but this isn't always the case as we use a new 'now' value for the calculation, and time could have elapsed. Fix this by using one 'now' value for an iteration of the loop. Bug: v8:9030 Change-Id: Ia49fb571f3c7c7d9f15c6a464ee0a9db814a7f03 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1535820 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#60409}
-
- 19 Mar, 2019 1 commit
-
-
Peter Marshall authored
This was unimplemented but is needed for Perfetto which posts delayed tasks on worker threads e.g. drain the trace buffer into a file every x seconds. This is implemented by adding a second queue which holds the delayed tasks in chronological order of 'next-to-execute'. We use an std::multimap for the queue so that we can easily get the next delayed task with begin(). The implementation will move delayed tasks into the main task queue when their deadline expires. Drive-by cleanup of the runner destructor which can just use = default. Bug: v8:8339 Change-Id: I3629c5d6e15ced2fc47eb1b7519a2dbbf8461fce Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1521114 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#60320}
-