summaryrefslogtreecommitdiffstats
path: root/base/sequenced_task_runner.cc
diff options
context:
space:
mode:
authorakalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-15 01:43:19 +0000
committerakalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-15 01:43:19 +0000
commit6b28d9469f63df13c9918d5f2d8d24ba8b9893a5 (patch)
tree195a09586b5388359914e63ebeca1aa66a2516fe /base/sequenced_task_runner.cc
parent1005065913ee5ced3fd8fc915d31e0c0461e2b1d (diff)
downloadchromium_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.cc31
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