summaryrefslogtreecommitdiff
path: root/deps/v8/src/heap/array-buffer-collector.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/heap/array-buffer-collector.cc')
-rw-r--r--deps/v8/src/heap/array-buffer-collector.cc8
1 files changed, 4 insertions, 4 deletions
diff --git a/deps/v8/src/heap/array-buffer-collector.cc b/deps/v8/src/heap/array-buffer-collector.cc
index cf0297bb2a..412e4ad05a 100644
--- a/deps/v8/src/heap/array-buffer-collector.cc
+++ b/deps/v8/src/heap/array-buffer-collector.cc
@@ -4,6 +4,7 @@
#include "src/heap/array-buffer-collector.h"
+#include "src/base/template-utils.h"
#include "src/heap/array-buffer-tracker.h"
#include "src/heap/heap-inl.h"
@@ -47,10 +48,9 @@ class ArrayBufferCollector::FreeingTask final : public CancelableTask {
void ArrayBufferCollector::FreeAllocationsOnBackgroundThread() {
heap_->account_external_memory_concurrently_freed();
- if (heap_->use_tasks() && FLAG_concurrent_array_buffer_freeing) {
- FreeingTask* task = new FreeingTask(heap_);
- V8::GetCurrentPlatform()->CallOnBackgroundThread(
- task, v8::Platform::kShortRunningTask);
+ if (!heap_->IsTearingDown() && FLAG_concurrent_array_buffer_freeing) {
+ V8::GetCurrentPlatform()->CallOnWorkerThread(
+ base::make_unique<FreeingTask>(heap_));
} else {
// Fallback for when concurrency is disabled/restricted.
FreeAllocations();