• 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
delayed-task-queue.cc 3.18 KB