Index: base/threading/sequenced_worker_pool.cc |
diff --git a/base/threading/sequenced_worker_pool.cc b/base/threading/sequenced_worker_pool.cc |
index 1f461c10d3ca101ff416dc6b32033baebef475bd..eea7afd738a679d854a600985f95e2e438d3d33a 100644 |
--- a/base/threading/sequenced_worker_pool.cc |
+++ b/base/threading/sequenced_worker_pool.cc |
@@ -381,8 +381,10 @@ class SequencedWorkerPool::Inner { |
}; |
// Helper used by PostTask() to complete the work when redirection is on. |
+ // Returns true if the task may run at some point in the future and false if |
+ // it will definitely not run. |
// Coalesce upon resolution of http://crbug.com/622400. |
- void PostTaskToTaskScheduler(const SequencedTask& sequenced, |
+ bool PostTaskToTaskScheduler(const SequencedTask& sequenced, |
const TimeDelta& delay); |
// Returns the TaskScheduler TaskRunner for the specified |sequence_token_id| |
@@ -731,7 +733,8 @@ bool SequencedWorkerPool::Inner::PostTask( |
if (subtle::NoBarrier_Load(&g_all_pools_state) == |
AllPoolsState::REDIRECTED_TO_TASK_SCHEDULER) { |
- PostTaskToTaskScheduler(sequenced, delay); |
+ if (!PostTaskToTaskScheduler(sequenced, delay)) |
+ return false; |
} else { |
pending_tasks_.insert(sequenced); |
@@ -770,7 +773,7 @@ bool SequencedWorkerPool::Inner::PostTask( |
return true; |
} |
-void SequencedWorkerPool::Inner::PostTaskToTaskScheduler( |
+bool SequencedWorkerPool::Inner::PostTaskToTaskScheduler( |
const SequencedTask& sequenced, |
const TimeDelta& delay) { |
DCHECK_EQ(AllPoolsState::REDIRECTED_TO_TASK_SCHEDULER, |
@@ -800,7 +803,7 @@ void SequencedWorkerPool::Inner::PostTaskToTaskScheduler( |
.WithFileIO() |
.WithPriority(task_priority_) |
.WithShutdownBehavior(task_shutdown_behavior); |
- GetTaskSchedulerTaskRunner(sequenced.sequence_token_id, traits) |
+ return GetTaskSchedulerTaskRunner(sequenced.sequence_token_id, traits) |
->PostDelayedTask(sequenced.posted_from, sequenced.task, delay); |
} |