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