aboutsummaryrefslogtreecommitdiff
path: root/deps/v8/src/cancelable-task.cc
diff options
context:
space:
mode:
authorMichaël Zasso <targos@protonmail.com>2017-03-21 10:16:54 +0100
committerMichaël Zasso <targos@protonmail.com>2017-03-25 09:44:10 +0100
commitc459d8ea5d402c702948c860d9497b2230ff7e8a (patch)
tree56c282fc4d40e5cb613b47cf7be3ea0526ed5b6f /deps/v8/src/cancelable-task.cc
parente0bc5a7361b1d29c3ed034155fd779ce6f44fb13 (diff)
downloadandroid-node-v8-c459d8ea5d402c702948c860d9497b2230ff7e8a.tar.gz
android-node-v8-c459d8ea5d402c702948c860d9497b2230ff7e8a.tar.bz2
android-node-v8-c459d8ea5d402c702948c860d9497b2230ff7e8a.zip
deps: update V8 to 5.7.492.69
PR-URL: https://github.com/nodejs/node/pull/11752 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Diffstat (limited to 'deps/v8/src/cancelable-task.cc')
-rw-r--r--deps/v8/src/cancelable-task.cc27
1 files changed, 25 insertions, 2 deletions
diff --git a/deps/v8/src/cancelable-task.cc b/deps/v8/src/cancelable-task.cc
index ea351f8908..b0387f4dc0 100644
--- a/deps/v8/src/cancelable-task.cc
+++ b/deps/v8/src/cancelable-task.cc
@@ -93,13 +93,36 @@ void CancelableTaskManager::CancelAndWait() {
}
}
+CancelableTaskManager::TryAbortResult CancelableTaskManager::TryAbortAll() {
+ // Clean up all cancelable fore- and background tasks. Tasks are canceled on
+ // the way if possible, i.e., if they have not started yet.
+ base::LockGuard<base::Mutex> guard(&mutex_);
+
+ if (cancelable_tasks_.empty()) return kTaskRemoved;
+
+ for (auto it = cancelable_tasks_.begin(); it != cancelable_tasks_.end();) {
+ if (it->second->Cancel()) {
+ it = cancelable_tasks_.erase(it);
+ } else {
+ ++it;
+ }
+ }
+
+ return cancelable_tasks_.empty() ? kTaskAborted : kTaskRunning;
+}
CancelableTask::CancelableTask(Isolate* isolate)
- : Cancelable(isolate->cancelable_task_manager()), isolate_(isolate) {}
+ : CancelableTask(isolate, isolate->cancelable_task_manager()) {}
+CancelableTask::CancelableTask(Isolate* isolate, CancelableTaskManager* manager)
+ : Cancelable(manager), isolate_(isolate) {}
CancelableIdleTask::CancelableIdleTask(Isolate* isolate)
- : Cancelable(isolate->cancelable_task_manager()), isolate_(isolate) {}
+ : CancelableIdleTask(isolate, isolate->cancelable_task_manager()) {}
+
+CancelableIdleTask::CancelableIdleTask(Isolate* isolate,
+ CancelableTaskManager* manager)
+ : Cancelable(manager), isolate_(isolate) {}
} // namespace internal
} // namespace v8