// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "base/task.h" Task::Task() { } Task::~Task() { } CancelableTask::CancelableTask() { } CancelableTask::~CancelableTask() { } namespace base { ScopedTaskRunner::ScopedTaskRunner(Task* task) : task_(task) { } ScopedTaskRunner::~ScopedTaskRunner() { if (task_) { task_->Run(); delete task_; } } Task* ScopedTaskRunner::Release() { Task* tmp = task_; task_ = NULL; return tmp; } namespace subtle { TaskClosureAdapter::TaskClosureAdapter(Task* task) : task_(task), should_leak_task_(&kTaskLeakingDefault) { } TaskClosureAdapter::TaskClosureAdapter(Task* task, bool* should_leak_task) : task_(task), should_leak_task_(should_leak_task) { } TaskClosureAdapter::~TaskClosureAdapter() { if (!*should_leak_task_) { delete task_; } } void TaskClosureAdapter::Run() { task_->Run(); delete task_; task_ = NULL; } // Don't leak tasks by default. bool TaskClosureAdapter::kTaskLeakingDefault = false; } // namespace subtle } // namespace base