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

Unified Diff: base/threading/sequenced_worker_pool.cc

Issue 2823103003: Introduce TaskRunner::RunsTasksInCurrentSequence() (Closed)
Patch Set: remove RunsTasksOnCurrentThread() overrided. 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 side-by-side diff with in-line comments
Download patch
Index: base/threading/sequenced_worker_pool.cc
diff --git a/base/threading/sequenced_worker_pool.cc b/base/threading/sequenced_worker_pool.cc
index 64f1bbd0bc563bbf3fd67de3d8fc03f76a8dba9d..5c62e1e4432388ab17c272ca9ebe9534e97f65dc 100644
--- a/base/threading/sequenced_worker_pool.cc
+++ b/base/threading/sequenced_worker_pool.cc
@@ -145,7 +145,7 @@ class SequencedWorkerPoolTaskRunner : public TaskRunner {
bool PostDelayedTask(const tracked_objects::Location& from_here,
OnceClosure task,
TimeDelta delay) override;
- bool RunsTasksOnCurrentThread() const override;
+ bool RunsTasksInCurrentSequence() const override;
private:
~SequencedWorkerPoolTaskRunner() override;
@@ -176,8 +176,8 @@ bool SequencedWorkerPoolTaskRunner::PostDelayedTask(
return pool_->PostDelayedWorkerTask(from_here, std::move(task), delay);
}
-bool SequencedWorkerPoolTaskRunner::RunsTasksOnCurrentThread() const {
- return pool_->RunsTasksOnCurrentThread();
+bool SequencedWorkerPoolTaskRunner::RunsTasksInCurrentSequence() const {
+ return pool_->RunsTasksInCurrentSequence();
}
} // namespace
@@ -199,7 +199,8 @@ class SequencedWorkerPool::PoolSequencedTaskRunner
bool PostDelayedTask(const tracked_objects::Location& from_here,
OnceClosure task,
TimeDelta delay) override;
- bool RunsTasksOnCurrentThread() const override;
+ bool RunsTasksInCurrentSequence() const override;
+
// SequencedTaskRunner implementation
bool PostNonNestableDelayedTask(const tracked_objects::Location& from_here,
@@ -243,7 +244,7 @@ bool SequencedWorkerPool::PoolSequencedTaskRunner::PostDelayedTask(
}
bool SequencedWorkerPool::PoolSequencedTaskRunner::
- RunsTasksOnCurrentThread() const {
+ RunsTasksInCurrentSequence() const {
return pool_->IsRunningSequenceOnCurrentThread(token_);
}
@@ -356,6 +357,7 @@ class SequencedWorkerPool::Inner {
TimeDelta delay);
bool RunsTasksOnCurrentThread() const;
gab 2017/04/18 15:00:33 We should be able to get rid of this one too? No e
+ bool RunsTasksInCurrentSequence() const;
bool IsRunningSequenceOnCurrentThread(SequenceToken sequence_token) const;
@@ -887,6 +889,20 @@ bool SequencedWorkerPool::Inner::RunsTasksOnCurrentThread() const {
}
}
+bool SequencedWorkerPool::Inner::RunsTasksInCurrentSequence() const {
+ AutoLock lock(lock_);
+ if (g_all_pools_state == AllPoolsState::REDIRECTED_TO_TASK_SCHEDULER) {
+ if (!runs_tasks_on_verifier_) {
+ runs_tasks_on_verifier_ = CreateTaskRunnerWithTraits(
+ TaskTraits().MayBlock().WithBaseSyncPrimitives().WithPriority(
+ task_priority_));
+ }
+ return runs_tasks_on_verifier_->RunsTasksInCurrentSequence();
+ } else {
+ return ContainsKey(threads_, PlatformThread::CurrentId());
+ }
+}
+
bool SequencedWorkerPool::Inner::IsRunningSequenceOnCurrentThread(
SequenceToken sequence_token) const {
DCHECK(sequence_token.IsValid());
@@ -1615,8 +1631,8 @@ bool SequencedWorkerPool::PostDelayedTask(
return PostDelayedWorkerTask(from_here, std::move(task), delay);
}
-bool SequencedWorkerPool::RunsTasksOnCurrentThread() const {
- return inner_->RunsTasksOnCurrentThread();
+bool SequencedWorkerPool::RunsTasksInCurrentSequence() const {
+ return inner_->RunsTasksInCurrentSequence();
}
void SequencedWorkerPool::FlushForTesting() {

Powered by Google App Engine
This is Rietveld 408576698