diff options
author | Michaël Zasso <targos@protonmail.com> | 2017-03-21 10:16:54 +0100 |
---|---|---|
committer | Michaël Zasso <targos@protonmail.com> | 2017-03-25 09:44:10 +0100 |
commit | c459d8ea5d402c702948c860d9497b2230ff7e8a (patch) | |
tree | 56c282fc4d40e5cb613b47cf7be3ea0526ed5b6f /deps/v8/src/cancelable-task.cc | |
parent | e0bc5a7361b1d29c3ed034155fd779ce6f44fb13 (diff) | |
download | android-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.cc | 27 |
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 |