diff options
Diffstat (limited to 'deps/v8/src/heap/array-buffer-collector.cc')
-rw-r--r-- | deps/v8/src/heap/array-buffer-collector.cc | 8 |
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(); |