OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "components/scheduler/child/task_queue_manager.h" | 5 #include "components/scheduler/child/task_queue_manager.h" |
6 | 6 |
7 #include <queue> | 7 #include <queue> |
8 #include <set> | 8 #include <set> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 492 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
503 std::vector<const base::TaskQueue*> work_queues; | 503 std::vector<const base::TaskQueue*> work_queues; |
504 for (const auto& queue : queues_) | 504 for (const auto& queue : queues_) |
505 work_queues.push_back(&queue->work_queue()); | 505 work_queues.push_back(&queue->work_queue()); |
506 selector_->RegisterWorkQueues(work_queues); | 506 selector_->RegisterWorkQueues(work_queues); |
507 selector_->SetTaskQueueSelectorObserver(this); | 507 selector_->SetTaskQueueSelectorObserver(this); |
508 | 508 |
509 do_work_from_main_thread_closure_ = | 509 do_work_from_main_thread_closure_ = |
510 base::Bind(&TaskQueueManager::DoWork, weak_factory_.GetWeakPtr(), true); | 510 base::Bind(&TaskQueueManager::DoWork, weak_factory_.GetWeakPtr(), true); |
511 do_work_from_other_thread_closure_ = | 511 do_work_from_other_thread_closure_ = |
512 base::Bind(&TaskQueueManager::DoWork, weak_factory_.GetWeakPtr(), false); | 512 base::Bind(&TaskQueueManager::DoWork, weak_factory_.GetWeakPtr(), false); |
513 | |
514 if (task_queue_count) | |
515 main_task_runner->SetDefaultTaskRunner(Queue(0)); | |
alex clarke (OOO till 29th)
2015/07/08 13:30:53
It's currently true that task #0 is the default qu
Sami
2015/07/08 18:45:07
Good point. I thought about this a bit an realized
| |
513 } | 516 } |
514 | 517 |
515 TaskQueueManager::~TaskQueueManager() { | 518 TaskQueueManager::~TaskQueueManager() { |
516 TRACE_EVENT_OBJECT_DELETED_WITH_ID(disabled_by_default_tracing_category_, | 519 TRACE_EVENT_OBJECT_DELETED_WITH_ID(disabled_by_default_tracing_category_, |
517 "TaskQueueManager", this); | 520 "TaskQueueManager", this); |
518 for (auto& queue : queues_) | 521 for (auto& queue : queues_) |
519 queue->WillDeleteTaskQueueManager(); | 522 queue->WillDeleteTaskQueueManager(); |
520 selector_->SetTaskQueueSelectorObserver(nullptr); | 523 selector_->SetTaskQueueSelectorObserver(nullptr); |
521 } | 524 } |
522 | 525 |
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
802 return nullptr; | 805 return nullptr; |
803 } | 806 } |
804 } | 807 } |
805 | 808 |
806 void TaskQueueManager::OnTaskQueueEnabled() { | 809 void TaskQueueManager::OnTaskQueueEnabled() { |
807 DCHECK(main_thread_checker_.CalledOnValidThread()); | 810 DCHECK(main_thread_checker_.CalledOnValidThread()); |
808 MaybePostDoWorkOnMainRunner(); | 811 MaybePostDoWorkOnMainRunner(); |
809 } | 812 } |
810 | 813 |
811 } // namespace scheduler | 814 } // namespace scheduler |
OLD | NEW |