1. 22 Mar, 2019 1 commit
    • Peter Marshall's avatar
      [platform] Only wait for positive time values in DelayedTaskQueue · 4db62d2a
      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: 's avatarHannes Payer <hpayer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60409}
      4db62d2a
  2. 19 Mar, 2019 1 commit
    • Peter Marshall's avatar
      [platform] Implement delayed tasks in the default worker runner · da66158f
      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: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60320}
      da66158f