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

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

Issue 1717283003: tracing: Make ConvertableToTraceFormat move-only scoped_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 9 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/base/task_queue_manager.h" 5 #include "components/scheduler/base/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 348 matching lines...) Expand 10 before | Expand all | Expand 10 after
359 } 359 }
360 360
361 internal::EnqueueOrder TaskQueueManager::GetNextSequenceNumber() { 361 internal::EnqueueOrder TaskQueueManager::GetNextSequenceNumber() {
362 return enqueue_order_generator_.GenerateNext(); 362 return enqueue_order_generator_.GenerateNext();
363 } 363 }
364 364
365 LazyNow TaskQueueManager::CreateLazyNow() const { 365 LazyNow TaskQueueManager::CreateLazyNow() const {
366 return LazyNow(delegate_.get()); 366 return LazyNow(delegate_.get());
367 } 367 }
368 368
369 scoped_refptr<base::trace_event::ConvertableToTraceFormat> 369 scoped_ptr<base::trace_event::ConvertableToTraceFormat>
370 TaskQueueManager::AsValueWithSelectorResult( 370 TaskQueueManager::AsValueWithSelectorResult(
371 bool should_run, 371 bool should_run,
372 internal::WorkQueue* selected_work_queue) const { 372 internal::WorkQueue* selected_work_queue) const {
373 DCHECK(main_thread_checker_.CalledOnValidThread()); 373 DCHECK(main_thread_checker_.CalledOnValidThread());
374 scoped_refptr<base::trace_event::TracedValue> state = 374 scoped_ptr<base::trace_event::TracedValue> state(
375 new base::trace_event::TracedValue(); 375 new base::trace_event::TracedValue());
376 state->BeginArray("queues"); 376 state->BeginArray("queues");
377 for (auto& queue : queues_) 377 for (auto& queue : queues_)
378 queue->AsValueInto(state.get()); 378 queue->AsValueInto(state.get());
379 state->EndArray(); 379 state->EndArray();
380 state->BeginDictionary("selector"); 380 state->BeginDictionary("selector");
381 selector_.AsValueInto(state.get()); 381 selector_.AsValueInto(state.get());
382 state->EndDictionary(); 382 state->EndDictionary();
383 if (should_run) { 383 if (should_run) {
384 state->SetString("selected_queue", 384 state->SetString("selected_queue",
385 selected_work_queue->task_queue()->GetName()); 385 selected_work_queue->task_queue()->GetName());
386 state->SetString("work_queue_name", selected_work_queue->name()); 386 state->SetString("work_queue_name", selected_work_queue->name());
387 } 387 }
388 388
389 state->BeginArray("time_domains"); 389 state->BeginArray("time_domains");
390 for (auto& time_domain : time_domains_) 390 for (auto& time_domain : time_domains_)
391 time_domain->AsValueInto(state.get()); 391 time_domain->AsValueInto(state.get());
392 state->EndArray(); 392 state->EndArray();
393 return state; 393 return std::move(state);
394 } 394 }
395 395
396 void TaskQueueManager::OnTaskQueueEnabled(internal::TaskQueueImpl* queue) { 396 void TaskQueueManager::OnTaskQueueEnabled(internal::TaskQueueImpl* queue) {
397 DCHECK(main_thread_checker_.CalledOnValidThread()); 397 DCHECK(main_thread_checker_.CalledOnValidThread());
398 // Only schedule DoWork if there's something to do. 398 // Only schedule DoWork if there's something to do.
399 if (!queue->immediate_work_queue()->Empty() || 399 if (!queue->immediate_work_queue()->Empty() ||
400 !queue->delayed_work_queue()->Empty()) { 400 !queue->delayed_work_queue()->Empty()) {
401 MaybeScheduleImmediateWork(FROM_HERE); 401 MaybeScheduleImmediateWork(FROM_HERE);
402 } 402 }
403 } 403 }
404 404
405 void TaskQueueManager::OnTriedToSelectBlockedWorkQueue( 405 void TaskQueueManager::OnTriedToSelectBlockedWorkQueue(
406 internal::WorkQueue* work_queue) { 406 internal::WorkQueue* work_queue) {
407 DCHECK(main_thread_checker_.CalledOnValidThread()); 407 DCHECK(main_thread_checker_.CalledOnValidThread());
408 DCHECK(!work_queue->Empty()); 408 DCHECK(!work_queue->Empty());
409 if (observer_) { 409 if (observer_) {
410 observer_->OnTriedToExecuteBlockedTask(*work_queue->task_queue(), 410 observer_->OnTriedToExecuteBlockedTask(*work_queue->task_queue(),
411 *work_queue->GetFrontTask()); 411 *work_queue->GetFrontTask());
412 } 412 }
413 } 413 }
414 414
415 } // namespace scheduler 415 } // namespace scheduler
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698