| Index: base/task_scheduler/post_task.h
|
| diff --git a/base/task_scheduler/post_task.h b/base/task_scheduler/post_task.h
|
| index a7a2114efb7b30f07e8ed3d2ede92de169327514..70aebd51c402ac15ee132d75fc8d886d2dfe1f49 100644
|
| --- a/base/task_scheduler/post_task.h
|
| +++ b/base/task_scheduler/post_task.h
|
| @@ -9,6 +9,8 @@
|
| #include "base/callback_forward.h"
|
| #include "base/location.h"
|
| #include "base/memory/ref_counted.h"
|
| +#include "base/sequenced_task_runner.h"
|
| +#include "base/single_thread_task_runner.h"
|
| #include "base/task_runner.h"
|
| #include "base/task_scheduler/task_traits.h"
|
|
|
| @@ -32,18 +34,17 @@ namespace base {
|
| // Bind(...));
|
| //
|
| // To post tasks that must run in sequence:
|
| -// scoped_refptr<TaskRunner> task_runner = CreateTaskRunnerWithTraits(
|
| -// TaskTraits(), ExecutionMode::SEQUENCED);
|
| +// scoped_refptr<SequencedTaskRunner> task_runner =
|
| +// CreateSequencedTaskRunnerWithTraits(TaskTraits());
|
| // task_runner.PostTask(FROM_HERE, Bind(...));
|
| // task_runner.PostTask(FROM_HERE, Bind(...));
|
| //
|
| // To post file I/O tasks that must run in sequence and can be skipped on
|
| // shutdown:
|
| -// scoped_refptr<TaskRunner> task_runner =
|
| -// CreateTaskRunnerWithTraits(
|
| +// scoped_refptr<SequencedTaskRunner> task_runner =
|
| +// CreateSequencedTaskRunnerWithTraits(
|
| // TaskTraits().WithFileIO().WithShutdownBehavior(
|
| -// TaskShutdownBehavior::SKIP_ON_SHUTDOWN),
|
| -// ExecutionMode::SEQUENCED);
|
| +// TaskShutdownBehavior::SKIP_ON_SHUTDOWN));
|
| // task_runner.PostTask(FROM_HERE, Bind(...));
|
| // task_runner.PostTask(FROM_HERE, Bind(...));
|
| //
|
| @@ -85,11 +86,28 @@ BASE_EXPORT void PostTaskWithTraitsAndReply(
|
| const Closure& task,
|
| const Closure& reply);
|
|
|
| -// Returns a TaskRunner whose PostTask invocations will result in scheduling
|
| -// tasks using |traits| which will be executed according to |execution_mode|.
|
| +// Returns a TaskRunner whose PostTask invocations result in scheduling tasks
|
| +// using |traits|. Tasks may run in any order and in parallel.
|
| BASE_EXPORT scoped_refptr<TaskRunner> CreateTaskRunnerWithTraits(
|
| - TaskTraits traits,
|
| - ExecutionMode execution_mode);
|
| + const TaskTraits& traits);
|
| +
|
| +// Returns a SequencedTaskRunner whose PostTask invocations result in scheduling
|
| +// tasks using |traits|. Tasks run one at a time in posting order.
|
| +BASE_EXPORT scoped_refptr<SequencedTaskRunner>
|
| +CreateSequencedTaskRunnerWithTraits(const TaskTraits& traits);
|
| +
|
| +// Returns a SingleThreadTaskRunner whose PostTask invocations result in
|
| +// scheduling tasks using |traits|. Tasks run on a single thread in posting
|
| +// order.
|
| +//
|
| +// If all you need is to make sure that tasks don't run concurrently (e.g.
|
| +// because they access a data structure which is not thread-safe), use
|
| +// CreateSequencedTaskRunnerWithTraits(). Only use this if you rely on a thread-
|
| +// affine API (it might be safer to assume thread-affinity when dealing with
|
| +// under-documented third-party APIs, e.g. other OS') or share data across tasks
|
| +// using thread-local storage.
|
| +BASE_EXPORT scoped_refptr<SingleThreadTaskRunner>
|
| +CreateSingleThreadTaskRunnerWithTraits(const TaskTraits& traits);
|
|
|
| } // namespace base
|
|
|
|
|