[TaskScheduler] Add a test to exercise AddDelayedTask() during Start().
https://chromium-coverage.appspot.com/reports/559420/linux/chromium/src/base/task_scheduler/delayed_task_manager.cc.html
Highlighted that we had untested code. The re-check behind the lock is
required to support AddDelayedTask() racing with Start(). Added a test
for this race which will hopefully trigger coverage here :)
21.5M if (started_.IsSet()) {
21.2M AddDelayedTaskNow(std::move(task), delay,
21.2M std::move(post_task_now_callback));
21.2M } else {
301k AutoSchedulerLock auto_lock(lock_);
301k if (started_.IsSet()) {
0 AddDelayedTaskNow(std::move(task), delay,
0 std::move(post_task_now_callback));
301k } else {
301k tasks_added_before_start_.push_back(
301k {std::move(task), std::move(post_task_now_callback)});
301k }
301k }
R=fdoray@chromium.org
Bug: 844597
Change-Id: I7bd9f47e0c76db5f0a4309210db33cb746b83eeb
Reviewed-on: https://chromium-review.googlesource.com/1066621
Reviewed-by: François Doray <fdoray@chromium.org>
Commit-Queue: Gabriel Charette <gab@chromium.org>
Cr-Commit-Position: refs/heads/master@{#560626}
CrOS-Libchrome-Original-Commit: 029d79cd5c7d38489ba843951f0ec47f213bf05a
1 file changed