| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/threading/sequenced_worker_pool.h" | 5 #include "base/threading/sequenced_worker_pool.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include <list> | 9 #include <list> |
| 10 #include <map> | 10 #include <map> |
| (...skipping 790 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 801 "SKIP_ON_SHUTDOWN."); | 801 "SKIP_ON_SHUTDOWN."); |
| 802 static_assert(static_cast<int>(TaskShutdownBehavior::BLOCK_SHUTDOWN) == | 802 static_assert(static_cast<int>(TaskShutdownBehavior::BLOCK_SHUTDOWN) == |
| 803 static_cast<int>(BLOCK_SHUTDOWN), | 803 static_cast<int>(BLOCK_SHUTDOWN), |
| 804 "TaskShutdownBehavior and WorkerShutdown enum mismatch for " | 804 "TaskShutdownBehavior and WorkerShutdown enum mismatch for " |
| 805 "BLOCK_SHUTDOWN."); | 805 "BLOCK_SHUTDOWN."); |
| 806 | 806 |
| 807 const TaskShutdownBehavior task_shutdown_behavior = | 807 const TaskShutdownBehavior task_shutdown_behavior = |
| 808 static_cast<TaskShutdownBehavior>(sequenced.shutdown_behavior); | 808 static_cast<TaskShutdownBehavior>(sequenced.shutdown_behavior); |
| 809 const TaskTraits traits = TaskTraits() | 809 const TaskTraits traits = TaskTraits() |
| 810 .WithFileIO() | 810 .WithFileIO() |
| 811 .WithWait() |
| 811 .WithPriority(task_priority_) | 812 .WithPriority(task_priority_) |
| 812 .WithShutdownBehavior(task_shutdown_behavior); | 813 .WithShutdownBehavior(task_shutdown_behavior); |
| 813 return GetTaskSchedulerTaskRunner(sequenced.sequence_token_id, traits) | 814 return GetTaskSchedulerTaskRunner(sequenced.sequence_token_id, traits) |
| 814 ->PostDelayedTask(sequenced.posted_from, sequenced.task, delay); | 815 ->PostDelayedTask(sequenced.posted_from, sequenced.task, delay); |
| 815 } | 816 } |
| 816 | 817 |
| 817 scoped_refptr<TaskRunner> | 818 scoped_refptr<TaskRunner> |
| 818 SequencedWorkerPool::Inner::GetTaskSchedulerTaskRunner( | 819 SequencedWorkerPool::Inner::GetTaskSchedulerTaskRunner( |
| 819 int sequence_token_id, | 820 int sequence_token_id, |
| 820 const TaskTraits& traits) { | 821 const TaskTraits& traits) { |
| (...skipping 30 matching lines...) Expand all Loading... |
| 851 } | 852 } |
| 852 | 853 |
| 853 return task_runner; | 854 return task_runner; |
| 854 } | 855 } |
| 855 | 856 |
| 856 bool SequencedWorkerPool::Inner::RunsTasksOnCurrentThread() const { | 857 bool SequencedWorkerPool::Inner::RunsTasksOnCurrentThread() const { |
| 857 AutoLock lock(lock_); | 858 AutoLock lock(lock_); |
| 858 if (g_all_pools_state == AllPoolsState::REDIRECTED_TO_TASK_SCHEDULER) { | 859 if (g_all_pools_state == AllPoolsState::REDIRECTED_TO_TASK_SCHEDULER) { |
| 859 if (!runs_tasks_on_verifier_) { | 860 if (!runs_tasks_on_verifier_) { |
| 860 runs_tasks_on_verifier_ = CreateTaskRunnerWithTraits( | 861 runs_tasks_on_verifier_ = CreateTaskRunnerWithTraits( |
| 861 TaskTraits().WithFileIO().WithPriority(task_priority_)); | 862 TaskTraits().WithFileIO().WithWait().WithPriority(task_priority_)); |
| 862 } | 863 } |
| 863 return runs_tasks_on_verifier_->RunsTasksOnCurrentThread(); | 864 return runs_tasks_on_verifier_->RunsTasksOnCurrentThread(); |
| 864 } else { | 865 } else { |
| 865 return ContainsKey(threads_, PlatformThread::CurrentId()); | 866 return ContainsKey(threads_, PlatformThread::CurrentId()); |
| 866 } | 867 } |
| 867 } | 868 } |
| 868 | 869 |
| 869 bool SequencedWorkerPool::Inner::IsRunningSequenceOnCurrentThread( | 870 bool SequencedWorkerPool::Inner::IsRunningSequenceOnCurrentThread( |
| 870 SequenceToken sequence_token) const { | 871 SequenceToken sequence_token) const { |
| 871 DCHECK(sequence_token.IsValid()); | 872 DCHECK(sequence_token.IsValid()); |
| (...skipping 724 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1596 bool SequencedWorkerPool::IsShutdownInProgress() { | 1597 bool SequencedWorkerPool::IsShutdownInProgress() { |
| 1597 return inner_->IsShutdownInProgress(); | 1598 return inner_->IsShutdownInProgress(); |
| 1598 } | 1599 } |
| 1599 | 1600 |
| 1600 bool SequencedWorkerPool::IsRunningSequenceOnCurrentThread( | 1601 bool SequencedWorkerPool::IsRunningSequenceOnCurrentThread( |
| 1601 SequenceToken sequence_token) const { | 1602 SequenceToken sequence_token) const { |
| 1602 return inner_->IsRunningSequenceOnCurrentThread(sequence_token); | 1603 return inner_->IsRunningSequenceOnCurrentThread(sequence_token); |
| 1603 } | 1604 } |
| 1604 | 1605 |
| 1605 } // namespace base | 1606 } // namespace base |
| OLD | NEW |