summaryrefslogtreecommitdiff
path: root/deps/v8/src/cancelable-task.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/cancelable-task.h')
-rw-r--r--deps/v8/src/cancelable-task.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/deps/v8/src/cancelable-task.h b/deps/v8/src/cancelable-task.h
index 65f98e7662..5b1a5f1def 100644
--- a/deps/v8/src/cancelable-task.h
+++ b/deps/v8/src/cancelable-task.h
@@ -45,6 +45,17 @@ class V8_EXPORT_PRIVATE CancelableTaskManager {
// already running. This disallows subsequent Register calls.
void CancelAndWait();
+ // Tries to cancel all remaining registered tasks. The return value indicates
+ // whether
+ //
+ // 1) No tasks were registered (kTaskRemoved), or
+ //
+ // 2) There is at least one remaining task that couldn't be cancelled
+ // (kTaskRunning), or
+ //
+ // 3) All registered tasks were cancelled (kTaskAborted).
+ TryAbortResult TryAbortAll();
+
private:
// Only called by {Cancelable} destructor. The task is done with executing,
// but needs to be removed.
@@ -123,9 +134,11 @@ class V8_EXPORT_PRIVATE Cancelable {
// Multiple inheritance can be used because Task is a pure interface.
-class CancelableTask : public Cancelable, public Task {
+class V8_EXPORT_PRIVATE CancelableTask : public Cancelable,
+ NON_EXPORTED_BASE(public Task) {
public:
explicit CancelableTask(Isolate* isolate);
+ CancelableTask(Isolate* isolate, CancelableTaskManager* manager);
// Task overrides.
void Run() final {
@@ -148,6 +161,7 @@ class CancelableTask : public Cancelable, public Task {
class CancelableIdleTask : public Cancelable, public IdleTask {
public:
explicit CancelableIdleTask(Isolate* isolate);
+ CancelableIdleTask(Isolate* isolate, CancelableTaskManager* manager);
// IdleTask overrides.
void Run(double deadline_in_seconds) final {