Chromium Code Reviews| Index: base/threading/sequenced_task_runner_handle.cc |
| diff --git a/base/threading/sequenced_task_runner_handle.cc b/base/threading/sequenced_task_runner_handle.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..a03642de42061cef29a2842fee5abbbc9a17df44 |
| --- /dev/null |
| +++ b/base/threading/sequenced_task_runner_handle.cc |
| @@ -0,0 +1,38 @@ |
| +// Copyright 2015 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "base/threading/sequenced_task_runner_handle.h" |
| + |
| +#include "base/sequenced_task_runner.h" |
| +#include "base/thread_task_runner_handle.h" |
| +#include "base/threading/sequenced_worker_pool.h" |
| + |
| +namespace base { |
| + |
| +// static |
| +scoped_refptr<SequencedTaskRunner> SequencedTaskRunnerHandle::Get() { |
| + // If we are on a worker thread for a SequencedBlockingPool that is running a |
| + // sequenced task, return a SequencedTaskRunner for it. |
| + scoped_refptr<base::SequencedWorkerPool> pool = |
| + SequencedWorkerPool::GetWorkerPoolForCurrentThread(); |
| + if (pool) { |
| + SequencedWorkerPool::SequenceToken sequence_token = |
| + SequencedWorkerPool::GetSequenceTokenForCurrentThread(); |
| + DCHECK(sequence_token.IsValid()); |
| + DCHECK(pool->IsRunningSequenceOnCurrentThread(sequence_token)); |
| + return pool->GetSequencedTaskRunner(sequence_token); |
| + } |
| + |
| + // Otherwise, return a SingleThreadTaskRunner for the current thread. |
| + return base::ThreadTaskRunnerHandle::Get(); |
| +} |
| + |
| +// static |
| +bool SequencedTaskRunnerHandle::IsSet() { |
| + return (SequencedWorkerPool::GetWorkerPoolForCurrentThread() && |
| + SequencedWorkerPool::GetSequenceTokenForCurrentThread().IsValid()) || |
| + base::ThreadTaskRunnerHandle::IsSet(); |
|
gab
2015/10/23 16:19:21
nit: missing a space.
Bernhard Bauer
2015/10/23 16:24:00
Clang-format did that (I think it's aligning the r
gab
2015/10/23 16:39:10
As sorry missed the extra bracket -- clang > gab :
|
| +} |
| + |
| +} // namespace base |