summaryrefslogtreecommitdiffstats
path: root/chrome/common/cancelable_task_tracker.h
diff options
context:
space:
mode:
authorkaiwang@chromium.org <kaiwang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-16 04:36:34 +0000
committerkaiwang@chromium.org <kaiwang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-16 04:36:34 +0000
commitedce70216d642db3b5433c540b2cbef93a183430 (patch)
tree2fd601b1a31a1ab8f32757e666f5e691a5486ee5 /chrome/common/cancelable_task_tracker.h
parentbab616bf4343e85877b951c8c96ad58196d23898 (diff)
downloadchromium_src-edce70216d642db3b5433c540b2cbef93a183430.zip
chromium_src-edce70216d642db3b5433c540b2cbef93a183430.tar.gz
chromium_src-edce70216d642db3b5433c540b2cbef93a183430.tar.bz2
Add function to CancelableTaskTracker and convert BootTimeLoader
BUG=155883 Review URL: https://chromiumcodereview.appspot.com/11410073 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@168134 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common/cancelable_task_tracker.h')
-rw-r--r--chrome/common/cancelable_task_tracker.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/chrome/common/cancelable_task_tracker.h b/chrome/common/cancelable_task_tracker.h
index 0a7289b..86450c3 100644
--- a/chrome/common/cancelable_task_tracker.h
+++ b/chrome/common/cancelable_task_tracker.h
@@ -28,6 +28,8 @@
// commonly used to cancel all outstanding tasks.
//
// 2. Both task and reply are deleted on the originating thread.
+//
+// 3. IsCanceledCallback is thread safe and can be run or deleted on any thread.
#ifndef CHROME_COMMON_CANCELABLE_TASK_TRACKER_H_
#define CHROME_COMMON_CANCELABLE_TASK_TRACKER_H_
@@ -53,6 +55,8 @@ class CancelableTaskTracker {
typedef int64 TaskId;
static const TaskId kBadTaskId;
+ typedef base::Callback<bool()> IsCanceledCallback;
+
CancelableTaskTracker();
// Cancels all tracked tasks.
@@ -67,6 +71,14 @@ class CancelableTaskTracker {
const base::Closure& task,
const base::Closure& reply);
+ // Creates a tracked TaskId and an associated IsCanceledCallback. Client can
+ // later call TryCancel() with the returned TaskId, and run |is_canceled_cb|
+ // to check whether the TaskId is canceled.
+ //
+ // Note. This function is used to address some special cancelation requirement
+ // in existing code. You SHOULD NOT need this function in new code.
+ TaskId NewTrackedTaskId(IsCanceledCallback* is_canceled_cb);
+
// After calling this function, |task| and |reply| will not run. If the
// cancelation happens when |task| is running or has finished running, |reply|
// will not run. If |reply| is running or has finished running, cancellation