diff options
author | kaiwang@chromium.org <kaiwang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-16 04:36:34 +0000 |
---|---|---|
committer | kaiwang@chromium.org <kaiwang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-16 04:36:34 +0000 |
commit | edce70216d642db3b5433c540b2cbef93a183430 (patch) | |
tree | 2fd601b1a31a1ab8f32757e666f5e691a5486ee5 /chrome/common/cancelable_task_tracker.h | |
parent | bab616bf4343e85877b951c8c96ad58196d23898 (diff) | |
download | chromium_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.h | 12 |
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 |