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

Side by Side Diff: base/task_scheduler/task_tracker.cc

Issue 2831883003: Do not inherit TaskPriority in TaskTraits. (Closed)
Patch Set: self-review Created 3 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "base/task_scheduler/task_tracker.h" 5 #include "base/task_scheduler/task_tracker.h"
6 6
7 #include <limits> 7 #include <limits>
8 #include <string> 8 #include <string>
9 9
10 #include "base/callback.h" 10 #include "base/callback.h"
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 void TaskTracker::Flush() { 212 void TaskTracker::Flush() {
213 AutoSchedulerLock auto_lock(flush_lock_); 213 AutoSchedulerLock auto_lock(flush_lock_);
214 while (subtle::NoBarrier_Load(&num_pending_undelayed_tasks_) != 0 && 214 while (subtle::NoBarrier_Load(&num_pending_undelayed_tasks_) != 0 &&
215 !IsShutdownComplete()) { 215 !IsShutdownComplete()) {
216 flush_cv_->Wait(); 216 flush_cv_->Wait();
217 } 217 }
218 } 218 }
219 219
220 bool TaskTracker::WillPostTask(const Task* task) { 220 bool TaskTracker::WillPostTask(const Task* task) {
221 DCHECK(task); 221 DCHECK(task);
222 DCHECK_LE(static_cast<int>(task->traits.priority()),
223 static_cast<int>(TaskPriority::HIGHEST));
222 224
223 if (!BeforePostTask(task->traits.shutdown_behavior())) 225 if (!BeforePostTask(task->traits.shutdown_behavior()))
224 return false; 226 return false;
225 227
226 if (task->delayed_run_time.is_null()) 228 if (task->delayed_run_time.is_null())
227 subtle::NoBarrier_AtomicIncrement(&num_pending_undelayed_tasks_, 1); 229 subtle::NoBarrier_AtomicIncrement(&num_pending_undelayed_tasks_, 1);
228 230
229 debug::TaskAnnotator task_annotator; 231 debug::TaskAnnotator task_annotator;
230 task_annotator.DidQueueTask(kQueueFunctionName, *task); 232 task_annotator.DidQueueTask(kQueueFunctionName, *task);
231 233
232 return true; 234 return true;
233 } 235 }
234 236
235 bool TaskTracker::RunTask(std::unique_ptr<Task> task, 237 bool TaskTracker::RunTask(std::unique_ptr<Task> task,
236 const SequenceToken& sequence_token) { 238 const SequenceToken& sequence_token) {
237 DCHECK(task); 239 DCHECK(task);
240 DCHECK_LE(static_cast<int>(task->traits.priority()),
241 static_cast<int>(TaskPriority::HIGHEST));
238 DCHECK(sequence_token.IsValid()); 242 DCHECK(sequence_token.IsValid());
239 243
240 const TaskShutdownBehavior shutdown_behavior = 244 const TaskShutdownBehavior shutdown_behavior =
241 task->traits.shutdown_behavior(); 245 task->traits.shutdown_behavior();
242 const bool can_run_task = BeforeRunTask(shutdown_behavior); 246 const bool can_run_task = BeforeRunTask(shutdown_behavior);
243 const bool is_delayed = !task->delayed_run_time.is_null(); 247 const bool is_delayed = !task->delayed_run_time.is_null();
244 248
245 if (can_run_task) { 249 if (can_run_task) {
246 RecordTaskLatencyHistogram(task.get()); 250 RecordTaskLatencyHistogram(task.get());
247 251
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after
493 task_latency_histograms_[static_cast<int>(task->traits.priority())] 497 task_latency_histograms_[static_cast<int>(task->traits.priority())]
494 [task->traits.may_block() || 498 [task->traits.may_block() ||
495 task->traits.with_base_sync_primitives() 499 task->traits.with_base_sync_primitives()
496 ? 1 500 ? 1
497 : 0] 501 : 0]
498 ->AddTime(task_latency); 502 ->AddTime(task_latency);
499 } 503 }
500 504
501 } // namespace internal 505 } // namespace internal
502 } // namespace base 506 } // namespace base
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698