• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2013 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 CONTENT_CHILD_WORKER_THREAD_TASK_RUNNER_H_
6 #define CONTENT_CHILD_WORKER_THREAD_TASK_RUNNER_H_
7 
8 #include "base/task_runner.h"
9 
10 namespace content {
11 
12 // A task runner that runs tasks on a single webkit worker thread which
13 // is managed by WorkerTaskRunner.
14 // Note that this implementation ignores the delay duration for PostDelayedTask
15 // and have it behave the same as PostTask.
16 class WorkerThreadTaskRunner : public base::TaskRunner {
17  public:
18   explicit WorkerThreadTaskRunner(int worker_thread_id);
19 
20   // Gets the WorkerThreadTaskRunner for the current worker thread.
21   // This returns non-null value only when it is called on a worker thread.
22   static scoped_refptr<WorkerThreadTaskRunner> current();
23 
24   // TaskRunner overrides.
25   virtual bool PostDelayedTask(const tracked_objects::Location& from_here,
26                                const base::Closure& task,
27                                base::TimeDelta delay) OVERRIDE;
28   virtual bool RunsTasksOnCurrentThread() const OVERRIDE;
29 
30  protected:
31   virtual ~WorkerThreadTaskRunner();
32 
33  private:
34   const int worker_thread_id_;
35 };
36 
37 }  // namespace content
38 
39 #endif  // CONTENT_CHILD_WORKER_THREAD_TASK_RUNNER_H_
40