worker_thread_task_runner.cc revision a1401311d1ab56c4ed0a474bd38c108f75cb0cd9
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#include "content/child/worker_thread_task_runner.h"
6
7#include "base/logging.h"
8#include "content/child/worker_task_runner.h"
9
10namespace content {
11
12WorkerThreadTaskRunner::WorkerThreadTaskRunner(int worker_thread_id)
13    : worker_thread_id_(worker_thread_id) {
14}
15
16scoped_refptr<WorkerThreadTaskRunner> WorkerThreadTaskRunner::current() {
17  int worker_thread_id = WorkerTaskRunner::Instance()->CurrentWorkerId();
18  if (!worker_thread_id)
19    return scoped_refptr<WorkerThreadTaskRunner>();
20  return make_scoped_refptr(new WorkerThreadTaskRunner(worker_thread_id));
21}
22
23bool WorkerThreadTaskRunner::PostDelayedTask(
24    const tracked_objects::Location& /* from_here */,
25    const base::Closure& task,
26    base::TimeDelta delay) {
27  // Currently non-zero delay is not supported.
28  DCHECK(!delay.ToInternalValue());
29  return WorkerTaskRunner::Instance()->PostTask(worker_thread_id_, task);
30}
31
32bool WorkerThreadTaskRunner::RunsTasksOnCurrentThread() const {
33  return worker_thread_id_ == WorkerTaskRunner::Instance()->CurrentWorkerId();
34}
35
36WorkerThreadTaskRunner::~WorkerThreadTaskRunner() {}
37
38}  // namespace content
39