| Index: base/threading/sequenced_worker_pool.h
|
| diff --git a/base/threading/sequenced_worker_pool.h b/base/threading/sequenced_worker_pool.h
|
| index 4d90f920830c87fb2166b9cdd961a05c49783de0..b45fad33ecc8be8973c674029d9b13ce7490128a 100644
|
| --- a/base/threading/sequenced_worker_pool.h
|
| +++ b/base/threading/sequenced_worker_pool.h
|
| @@ -48,7 +48,8 @@
|
| // destruction will be visible to T2.
|
| //
|
| // Example:
|
| -// SequencedWorkerPool::SequenceToken token = pool.GetSequenceToken();
|
| +// SequencedWorkerPool::SequenceToken token =
|
| +// SequencedWorkerPool::GetSequenceToken();
|
| // pool.PostSequencedWorkerTask(token, SequencedWorkerPool::SKIP_ON_SHUTDOWN,
|
| // FROM_HERE, base::Bind(...));
|
| // pool.PostSequencedWorkerTask(token, SequencedWorkerPool::SKIP_ON_SHUTDOWN,
|
| @@ -164,13 +165,22 @@
|
| // an unsequenced task, returns an invalid SequenceToken.
|
| static SequenceToken GetSequenceTokenForCurrentThread();
|
|
|
| + // Gets a SequencedTaskRunner for the current thread. If the current thread is
|
| + // running an unsequenced task, a new SequenceToken will be generated and set,
|
| + // so that the returned SequencedTaskRunner is guaranteed to run tasks after
|
| + // the current task has finished running.
|
| + static scoped_refptr<SequencedTaskRunner>
|
| + GetSequencedTaskRunnerForCurrentThread();
|
| +
|
| + // Returns a unique token that can be used to sequence tasks posted to
|
| + // PostSequencedWorkerTask(). Valid tokens are always nonzero.
|
| + // TODO(bauerb): Rename this to better differentiate from
|
| + // GetSequenceTokenForCurrentThread().
|
| + static SequenceToken GetSequenceToken();
|
| +
|
| // Returns the SequencedWorkerPool that owns this thread, or null if the
|
| // current thread is not a SequencedWorkerPool worker thread.
|
| static scoped_refptr<SequencedWorkerPool> GetWorkerPoolForCurrentThread();
|
| -
|
| - // Returns a unique token that can be used to sequence tasks posted to
|
| - // PostSequencedWorkerTask(). Valid tokens are always nonzero.
|
| - static SequenceToken GetSequenceToken();
|
|
|
| // When constructing a SequencedWorkerPool, there must be a
|
| // ThreadTaskRunnerHandle on the current thread unless you plan to
|
| @@ -323,6 +333,10 @@
|
| // sequence_token.
|
| bool IsRunningSequenceOnCurrentThread(SequenceToken sequence_token) const;
|
|
|
| + // Returns true if any thread is currently processing a task with the given
|
| + // sequence token. Should only be called with a valid sequence token.
|
| + bool IsRunningSequence(SequenceToken sequence_token) const;
|
| +
|
| // Blocks until all pending tasks are complete. This should only be called in
|
| // unit tests when you want to validate something that should have happened.
|
| // This will not flush delayed tasks; delayed tasks get deleted.
|
|
|