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

Side by Side Diff: base/threading/sequenced_worker_pool.cc

Issue 2590443005: Add TaskTraits::MayBlock and TaskTraits::WithSyncPrimitives. (Closed)
Patch Set: CR Created 4 years 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
« no previous file with comments | « base/task_scheduler/task_traits.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 794 matching lines...) Expand 10 before | Expand all | Expand 10 after
805 "TaskShutdownBehavior and WorkerShutdown enum mismatch for " 805 "TaskShutdownBehavior and WorkerShutdown enum mismatch for "
806 "SKIP_ON_SHUTDOWN."); 806 "SKIP_ON_SHUTDOWN.");
807 static_assert(static_cast<int>(TaskShutdownBehavior::BLOCK_SHUTDOWN) == 807 static_assert(static_cast<int>(TaskShutdownBehavior::BLOCK_SHUTDOWN) ==
808 static_cast<int>(BLOCK_SHUTDOWN), 808 static_cast<int>(BLOCK_SHUTDOWN),
809 "TaskShutdownBehavior and WorkerShutdown enum mismatch for " 809 "TaskShutdownBehavior and WorkerShutdown enum mismatch for "
810 "BLOCK_SHUTDOWN."); 810 "BLOCK_SHUTDOWN.");
811 811
812 const TaskShutdownBehavior task_shutdown_behavior = 812 const TaskShutdownBehavior task_shutdown_behavior =
813 static_cast<TaskShutdownBehavior>(sequenced.shutdown_behavior); 813 static_cast<TaskShutdownBehavior>(sequenced.shutdown_behavior);
814 const TaskTraits traits = TaskTraits() 814 const TaskTraits traits = TaskTraits()
815 .WithFileIO() 815 .MayBlock()
816 .WithWait() 816 .WithSyncPrimitives()
817 .WithPriority(task_priority_) 817 .WithPriority(task_priority_)
818 .WithShutdownBehavior(task_shutdown_behavior); 818 .WithShutdownBehavior(task_shutdown_behavior);
819 return GetTaskSchedulerTaskRunner(sequenced.sequence_token_id, traits) 819 return GetTaskSchedulerTaskRunner(sequenced.sequence_token_id, traits)
820 ->PostDelayedTask(sequenced.posted_from, sequenced.task, delay); 820 ->PostDelayedTask(sequenced.posted_from, sequenced.task, delay);
821 } 821 }
822 822
823 scoped_refptr<TaskRunner> 823 scoped_refptr<TaskRunner>
824 SequencedWorkerPool::Inner::GetTaskSchedulerTaskRunner( 824 SequencedWorkerPool::Inner::GetTaskSchedulerTaskRunner(
825 int sequence_token_id, 825 int sequence_token_id,
826 const TaskTraits& traits) { 826 const TaskTraits& traits) {
(...skipping 30 matching lines...) Expand all
857 } 857 }
858 858
859 return task_runner; 859 return task_runner;
860 } 860 }
861 861
862 bool SequencedWorkerPool::Inner::RunsTasksOnCurrentThread() const { 862 bool SequencedWorkerPool::Inner::RunsTasksOnCurrentThread() const {
863 AutoLock lock(lock_); 863 AutoLock lock(lock_);
864 if (g_all_pools_state == AllPoolsState::REDIRECTED_TO_TASK_SCHEDULER) { 864 if (g_all_pools_state == AllPoolsState::REDIRECTED_TO_TASK_SCHEDULER) {
865 if (!runs_tasks_on_verifier_) { 865 if (!runs_tasks_on_verifier_) {
866 runs_tasks_on_verifier_ = CreateTaskRunnerWithTraits( 866 runs_tasks_on_verifier_ = CreateTaskRunnerWithTraits(
867 TaskTraits().WithFileIO().WithWait().WithPriority(task_priority_)); 867 TaskTraits().MayBlock().WithSyncPrimitives().WithPriority(
868 task_priority_));
868 } 869 }
869 return runs_tasks_on_verifier_->RunsTasksOnCurrentThread(); 870 return runs_tasks_on_verifier_->RunsTasksOnCurrentThread();
870 } else { 871 } else {
871 return ContainsKey(threads_, PlatformThread::CurrentId()); 872 return ContainsKey(threads_, PlatformThread::CurrentId());
872 } 873 }
873 } 874 }
874 875
875 bool SequencedWorkerPool::Inner::IsRunningSequenceOnCurrentThread( 876 bool SequencedWorkerPool::Inner::IsRunningSequenceOnCurrentThread(
876 SequenceToken sequence_token) const { 877 SequenceToken sequence_token) const {
877 DCHECK(sequence_token.IsValid()); 878 DCHECK(sequence_token.IsValid());
(...skipping 726 matching lines...) Expand 10 before | Expand all | Expand 10 after
1604 bool SequencedWorkerPool::IsShutdownInProgress() { 1605 bool SequencedWorkerPool::IsShutdownInProgress() {
1605 return inner_->IsShutdownInProgress(); 1606 return inner_->IsShutdownInProgress();
1606 } 1607 }
1607 1608
1608 bool SequencedWorkerPool::IsRunningSequenceOnCurrentThread( 1609 bool SequencedWorkerPool::IsRunningSequenceOnCurrentThread(
1609 SequenceToken sequence_token) const { 1610 SequenceToken sequence_token) const {
1610 return inner_->IsRunningSequenceOnCurrentThread(sequence_token); 1611 return inner_->IsRunningSequenceOnCurrentThread(sequence_token);
1611 } 1612 }
1612 1613
1613 } // namespace base 1614 } // namespace base
OLDNEW
« no previous file with comments | « base/task_scheduler/task_traits.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698