Index: components/scheduler/base/task_queue_manager.cc |
diff --git a/components/scheduler/base/task_queue_manager.cc b/components/scheduler/base/task_queue_manager.cc |
index 584eb703646e0173c5e79b748993e49a56760677..19c0209a89efbd9e5a2ad82905aed1986cb1f6ae 100644 |
--- a/components/scheduler/base/task_queue_manager.cc |
+++ b/components/scheduler/base/task_queue_manager.cc |
@@ -48,6 +48,7 @@ TaskQueueManager::TaskQueueManager( |
disabled_by_default_tracing_category), |
disabled_by_default_verbose_tracing_category_( |
disabled_by_default_verbose_tracing_category), |
+ current_selected_task_queue_(nullptr), |
observer_(nullptr), |
deletion_sentinel_(new DeletionSentinel()), |
weak_factory_(this) { |
@@ -218,12 +219,8 @@ void TaskQueueManager::DoWork(base::TimeTicks run_time, bool from_main_thread) { |
// TODO(alexclarke): Consider refactoring the above loop to terminate only |
// when there's no more work left to be done, rather than posting a |
// continuation task. |
- if (!selector_.EnabledWorkQueuesEmpty() || TryAdvanceTimeDomains()) { |
+ if (!selector_.EnabledWorkQueuesEmpty() || TryAdvanceTimeDomains()) |
MaybeScheduleImmediateWork(FROM_HERE); |
- } else { |
- // Tell the task runner we have no more work. |
- delegate_->OnNoMoreImmediateWork(); |
- } |
} |
bool TaskQueueManager::TryAdvanceTimeDomains() { |
@@ -280,7 +277,11 @@ TaskQueueManager::ProcessTaskResult TaskQueueManager::ProcessTaskFromWorkQueue( |
} |
TRACE_EVENT1(tracing_category_, |
"TaskQueueManager::RunTask", "queue", queue->GetName()); |
+ internal::TaskQueueImpl* prev_selected_task_queue = |
+ current_selected_task_queue_; |
+ current_selected_task_queue_ = queue; |
task_annotator_.RunTask("TaskQueueManager::PostTask", pending_task); |
+ current_selected_task_queue_ = prev_selected_task_queue; |
Sami
2016/02/01 11:15:06
Should we guard against prev_selected_task_queue g
alex clarke (OOO till 29th)
2016/02/01 14:16:54
Done.
|
// Detect if the TaskQueueManager just got deleted. If this happens we must |
// not access any member variables after this point. |