diff options
author | akalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-15 01:43:19 +0000 |
---|---|---|
committer | akalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-15 01:43:19 +0000 |
commit | 6b28d9469f63df13c9918d5f2d8d24ba8b9893a5 (patch) | |
tree | 195a09586b5388359914e63ebeca1aa66a2516fe /base/sequenced_task_runner.cc | |
parent | 1005065913ee5ced3fd8fc915d31e0c0461e2b1d (diff) | |
download | chromium_src-6b28d9469f63df13c9918d5f2d8d24ba8b9893a5.zip chromium_src-6b28d9469f63df13c9918d5f2d8d24ba8b9893a5.tar.gz chromium_src-6b28d9469f63df13c9918d5f2d8d24ba8b9893a5.tar.bz2 |
Make new TaskRunner, SequencedTaskRunner, and SingleThreadTaskRunner interfaces
TaskRunner just has Post{,Delayed}Task(), SequencedTaskRunner
extends Executor to have ordering guarantees and PostNonNestable{,Delayed}Task(), and SingleThreadTaskRunner extends SequencedTaskRunner and guarantees execution on a single thread.
Move a bunch of methods from MessageLoopProxy into the TaskRunner classes and make it inherit from SingleThreadTaskRunner.
BUG=110973
TEST=
Review URL: https://chromiumcodereview.appspot.com/9169037
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121999 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/sequenced_task_runner.cc')
-rw-r--r-- | base/sequenced_task_runner.cc | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/base/sequenced_task_runner.cc b/base/sequenced_task_runner.cc new file mode 100644 index 0000000..bab7d1c --- /dev/null +++ b/base/sequenced_task_runner.cc @@ -0,0 +1,31 @@ +// Copyright (c) 2012 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/sequenced_task_runner.h" + +#include "base/bind.h" + +namespace base { + +bool SequencedTaskRunner::PostNonNestableTask( + const tracked_objects::Location& from_here, + const Closure& task) { + return PostNonNestableDelayedTask(from_here, task, 0); +} + +bool SequencedTaskRunner::DeleteSoonInternal( + const tracked_objects::Location& from_here, + void(*deleter)(const void*), + const void* object) { + return PostNonNestableTask(from_here, Bind(deleter, object)); +} + +bool SequencedTaskRunner::ReleaseSoonInternal( + const tracked_objects::Location& from_here, + void(*releaser)(const void*), + const void* object) { + return PostNonNestableTask(from_here, Bind(releaser, object)); +} + +} // namespace base |