OLD | NEW |
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 | 8 |
9 #include "base/atomicops.h" | 9 #include "base/atomicops.h" |
10 #include "base/callback.h" | 10 #include "base/callback.h" |
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 | 184 |
185 if (!BeforePostTask(task->traits.shutdown_behavior())) | 185 if (!BeforePostTask(task->traits.shutdown_behavior())) |
186 return false; | 186 return false; |
187 | 187 |
188 debug::TaskAnnotator task_annotator; | 188 debug::TaskAnnotator task_annotator; |
189 task_annotator.DidQueueTask(kQueueFunctionName, *task); | 189 task_annotator.DidQueueTask(kQueueFunctionName, *task); |
190 | 190 |
191 return true; | 191 return true; |
192 } | 192 } |
193 | 193 |
194 bool TaskTracker::RunTask(const Task* task, | 194 bool TaskTracker::RunTask(Task* task, |
195 const SequenceToken& sequence_token) { | 195 const SequenceToken& sequence_token) { |
196 DCHECK(task); | 196 DCHECK(task); |
197 DCHECK(sequence_token.IsValid()); | 197 DCHECK(sequence_token.IsValid()); |
198 | 198 |
199 const TaskShutdownBehavior shutdown_behavior = | 199 const TaskShutdownBehavior shutdown_behavior = |
200 task->traits.shutdown_behavior(); | 200 task->traits.shutdown_behavior(); |
201 if (!BeforeRunTask(shutdown_behavior)) | 201 if (!BeforeRunTask(shutdown_behavior)) |
202 return false; | 202 return false; |
203 | 203 |
204 // All tasks run through here and the scheduler itself doesn't use singletons. | 204 // All tasks run through here and the scheduler itself doesn't use singletons. |
(...skipping 17 matching lines...) Expand all Loading... |
222 sequenced_task_runner_handle.reset( | 222 sequenced_task_runner_handle.reset( |
223 new SequencedTaskRunnerHandle(task->sequenced_task_runner_ref)); | 223 new SequencedTaskRunnerHandle(task->sequenced_task_runner_ref)); |
224 } else if (task->single_thread_task_runner_ref) { | 224 } else if (task->single_thread_task_runner_ref) { |
225 single_thread_task_runner_handle.reset( | 225 single_thread_task_runner_handle.reset( |
226 new ThreadTaskRunnerHandle(task->single_thread_task_runner_ref)); | 226 new ThreadTaskRunnerHandle(task->single_thread_task_runner_ref)); |
227 } | 227 } |
228 | 228 |
229 TRACE_TASK_EXECUTION(kRunFunctionName, *task); | 229 TRACE_TASK_EXECUTION(kRunFunctionName, *task); |
230 | 230 |
231 debug::TaskAnnotator task_annotator; | 231 debug::TaskAnnotator task_annotator; |
232 task_annotator.RunTask(kQueueFunctionName, *task); | 232 task_annotator.RunTask(kQueueFunctionName, task); |
233 } | 233 } |
234 | 234 |
235 AfterRunTask(shutdown_behavior); | 235 AfterRunTask(shutdown_behavior); |
236 | 236 |
237 return true; | 237 return true; |
238 } | 238 } |
239 | 239 |
240 bool TaskTracker::HasShutdownStarted() const { | 240 bool TaskTracker::HasShutdownStarted() const { |
241 return state_->HasShutdownStarted(); | 241 return state_->HasShutdownStarted(); |
242 } | 242 } |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
344 | 344 |
345 // This method can only be called after shutdown has started. | 345 // This method can only be called after shutdown has started. |
346 DCHECK(state_->HasShutdownStarted()); | 346 DCHECK(state_->HasShutdownStarted()); |
347 DCHECK(shutdown_event_); | 347 DCHECK(shutdown_event_); |
348 | 348 |
349 shutdown_event_->Signal(); | 349 shutdown_event_->Signal(); |
350 } | 350 } |
351 | 351 |
352 } // namespace internal | 352 } // namespace internal |
353 } // namespace base | 353 } // namespace base |
OLD | NEW |