[email protected] | 6b28d94 | 2012-02-15 01:43:19 | [diff] [blame] | 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 | ||||
3 | // found in the LICENSE file. | ||||
4 | |||||
5 | #ifndef BASE_SINGLE_THREAD_TASK_RUNNER_H_ | ||||
6 | #define BASE_SINGLE_THREAD_TASK_RUNNER_H_ | ||||
[email protected] | 6b28d94 | 2012-02-15 01:43:19 | [diff] [blame] | 7 | |
8 | #include "base/base_export.h" | ||||
9 | #include "base/sequenced_task_runner.h" | ||||
10 | |||||
11 | namespace base { | ||||
12 | |||||
13 | // A SingleThreadTaskRunner is a SequencedTaskRunner with one more | ||||
14 | // guarantee; namely, that all tasks are run on a single dedicated | ||||
15 | // thread. Most use cases require only a SequencedTaskRunner, unless | ||||
[email protected] | 8367dc11 | 2013-04-06 07:09:33 | [diff] [blame^] | 16 | // there is a specific need to run tasks on only a single thread. |
[email protected] | 6b28d94 | 2012-02-15 01:43:19 | [diff] [blame] | 17 | // |
[email protected] | 8367dc11 | 2013-04-06 07:09:33 | [diff] [blame^] | 18 | // SingleThreadTaskRunner implementations might: |
19 | // - Post tasks to an existing thread's MessageLoop (see MessageLoopProxy). | ||||
20 | // - Create their own worker thread and MessageLoop to post tasks to. | ||||
21 | // - Add tasks to a FIFO and signal to a non-MessageLoop thread for them to | ||||
22 | // be processed. This allows TaskRunner-oriented code run on threads | ||||
23 | // running other kinds of message loop, e.g. Jingle threads. | ||||
[email protected] | 6b28d94 | 2012-02-15 01:43:19 | [diff] [blame] | 24 | class BASE_EXPORT SingleThreadTaskRunner : public SequencedTaskRunner { |
[email protected] | f2ebbf06 | 2012-04-06 03:14:30 | [diff] [blame] | 25 | public: |
[email protected] | 6b28d94 | 2012-02-15 01:43:19 | [diff] [blame] | 26 | // A more explicit alias to RunsTasksOnCurrentThread(). |
27 | bool BelongsToCurrentThread() const { | ||||
28 | return RunsTasksOnCurrentThread(); | ||||
29 | } | ||||
[email protected] | f2ebbf06 | 2012-04-06 03:14:30 | [diff] [blame] | 30 | |
31 | protected: | ||||
32 | virtual ~SingleThreadTaskRunner() {} | ||||
[email protected] | 6b28d94 | 2012-02-15 01:43:19 | [diff] [blame] | 33 | }; |
34 | |||||
35 | } // namespace base | ||||
36 | |||||
[email protected] | a8582b1 | 2012-12-19 22:18:29 | [diff] [blame] | 37 | #endif // BASE_SINGLE_THREAD_TASK_RUNNER_H_ |