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

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

Issue 1058873010: Move blink scheduler implementation into a component (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: updates Created 5 years, 8 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 "content/child/scheduler/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"
11 #include "base/trace_event/trace_event.h" 11 #include "base/trace_event/trace_event.h"
12 #include "base/trace_event/trace_event_argument.h" 12 #include "base/trace_event/trace_event_argument.h"
13 #include "content/child/scheduler/nestable_single_thread_task_runner.h" 13 #include "components/scheduler/child/nestable_single_thread_task_runner.h"
14 #include "content/child/scheduler/task_queue_selector.h" 14 #include "components/scheduler/child/task_queue_selector.h"
15 #include "content/child/scheduler/time_source.h" 15 #include "components/scheduler/child/time_source.h"
16 16
17 namespace { 17 namespace {
18 const int64_t kMaxTimeTicks = std::numeric_limits<int64>::max(); 18 const int64_t kMaxTimeTicks = std::numeric_limits<int64>::max();
19 } 19 }
20 20
21 namespace content { 21 namespace scheduler {
22 namespace internal { 22 namespace internal {
23 23
24 // Now() is somewhat expensive so it makes sense not to call Now() unless we 24 // Now() is somewhat expensive so it makes sense not to call Now() unless we
25 // really need to. 25 // really need to.
26 class LazyNow { 26 class LazyNow {
27 public: 27 public:
28 explicit LazyNow(base::TimeTicks now) 28 explicit LazyNow(base::TimeTicks now)
29 : task_queue_manager_(nullptr), now_(now) { 29 : task_queue_manager_(nullptr), now_(now) {
30 DCHECK(!now.is_null()); 30 DCHECK(!now.is_null());
31 } 31 }
(...skipping 567 matching lines...) Expand 10 before | Expand all | Expand 10 after
599 (base::Closure())); 599 (base::Closure()));
600 for (int i = 0; i < work_batch_size_; i++) { 600 for (int i = 0; i < work_batch_size_; i++) {
601 size_t queue_index; 601 size_t queue_index;
602 if (!SelectWorkQueueToService(&queue_index)) 602 if (!SelectWorkQueueToService(&queue_index))
603 return; 603 return;
604 // Note that this function won't post another call to DoWork if one is 604 // Note that this function won't post another call to DoWork if one is
605 // already pending, so it is safe to call it in a loop. 605 // already pending, so it is safe to call it in a loop.
606 MaybePostDoWorkOnMainRunner(); 606 MaybePostDoWorkOnMainRunner();
607 607
608 if (ProcessTaskFromWorkQueue(queue_index, i > 0, &previous_task)) 608 if (ProcessTaskFromWorkQueue(queue_index, i > 0, &previous_task))
609 return; // The TaskQueueManager got deleted, we must bail out. 609 return; // The TaskQueueManager got deleted, we must bail out.
610 610
611 if (!UpdateWorkQueues(&previous_task)) 611 if (!UpdateWorkQueues(&previous_task))
612 return; 612 return;
613 } 613 }
614 } 614 }
615 615
616 bool TaskQueueManager::SelectWorkQueueToService(size_t* out_queue_index) { 616 bool TaskQueueManager::SelectWorkQueueToService(size_t* out_queue_index) {
617 bool should_run = selector_->SelectWorkQueueToService(out_queue_index); 617 bool should_run = selector_->SelectWorkQueueToService(out_queue_index);
618 TRACE_EVENT_OBJECT_SNAPSHOT_WITH_ID( 618 TRACE_EVENT_OBJECT_SNAPSHOT_WITH_ID(
619 disabled_by_default_tracing_category_, "TaskQueueManager", this, 619 disabled_by_default_tracing_category_, "TaskQueueManager", this,
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
734 if (should_run) 734 if (should_run)
735 state->SetInteger("selected_queue", selected_queue); 735 state->SetInteger("selected_queue", selected_queue);
736 return state; 736 return state;
737 } 737 }
738 738
739 void TaskQueueManager::OnTaskQueueEnabled() { 739 void TaskQueueManager::OnTaskQueueEnabled() {
740 DCHECK(main_thread_checker_.CalledOnValidThread()); 740 DCHECK(main_thread_checker_.CalledOnValidThread());
741 MaybePostDoWorkOnMainRunner(); 741 MaybePostDoWorkOnMainRunner();
742 } 742 }
743 743
744 } // namespace content 744 } // namespace scheduler
OLDNEW
« no previous file with comments | « components/scheduler/child/task_queue_manager.h ('k') | components/scheduler/child/task_queue_manager_perftest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698