���� JFIF �� � ( %"1"%)+...383,7(-.-
![]() Server : Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.20 System : Linux st2.domain.com 3.10.0-1127.10.1.el7.x86_64 #1 SMP Wed Jun 3 14:28:03 UTC 2020 x86_64 User : apache ( 48) PHP Version : 7.4.20 Disable Function : NONE Directory : /home/real/node-v13.0.1/deps/v8/src/heap/ |
// Copyright 2017 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef V8_HEAP_ARRAY_BUFFER_COLLECTOR_H_ #define V8_HEAP_ARRAY_BUFFER_COLLECTOR_H_ #include <vector> #include "src/base/platform/mutex.h" #include "src/objects/js-array-buffer.h" namespace v8 { namespace internal { class Heap; // To support background processing of array buffer backing stores, we process // array buffers using the ArrayBufferTracker class. The ArrayBufferCollector // keeps track of garbage backing stores so that they can be freed on a // background thread. class ArrayBufferCollector { public: explicit ArrayBufferCollector(Heap* heap) : heap_(heap) {} ~ArrayBufferCollector() { PerformFreeAllocations(); } // These allocations will be either // - freed immediately when under memory pressure, or // - queued for freeing in FreeAllocations() or during tear down. // // FreeAllocations() potentially triggers a background task for processing. void QueueOrFreeGarbageAllocations( std::vector<JSArrayBuffer::Allocation> allocations); // Calls FreeAllocations() on a background thread. void FreeAllocations(); private: class FreeingTask; // Begin freeing the allocations added through QueueOrFreeGarbageAllocations. // Also called by TearDown. void PerformFreeAllocations(); Heap* const heap_; base::Mutex allocations_mutex_; std::vector<std::vector<JSArrayBuffer::Allocation>> allocations_; }; } // namespace internal } // namespace v8 #endif // V8_HEAP_ARRAY_BUFFER_COLLECTOR_H_