Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1370)

Side by Side Diff: components/scheduler/child/task_queue_manager.cc

Issue 987193002: Redirect the MessageLoop's task runner to the renderer scheduler (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Another API update. Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698