diff options
Diffstat (limited to 'chromium/v8/src/heap/concurrent-allocator.h')
| -rw-r--r-- | chromium/v8/src/heap/concurrent-allocator.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/chromium/v8/src/heap/concurrent-allocator.h b/chromium/v8/src/heap/concurrent-allocator.h index f165d009620..795e37d339c 100644 --- a/chromium/v8/src/heap/concurrent-allocator.h +++ b/chromium/v8/src/heap/concurrent-allocator.h @@ -8,12 +8,27 @@ #include "src/common/globals.h" #include "src/heap/heap.h" #include "src/heap/spaces.h" +#include "src/tasks/cancelable-task.h" namespace v8 { namespace internal { class LocalHeap; +class StressConcurrentAllocatorTask : public CancelableTask { + public: + explicit StressConcurrentAllocatorTask(Isolate* isolate) + : CancelableTask(isolate), isolate_(isolate) {} + + void RunInternal() override; + + // Schedules task on background thread + static void Schedule(Isolate* isolate); + + private: + Isolate* isolate_; +}; + // Concurrent allocator for allocation from background threads/tasks. // Allocations are served from a TLAB if possible. class ConcurrentAllocator { @@ -36,6 +51,8 @@ class ConcurrentAllocator { void FreeLinearAllocationArea(); void MakeLinearAllocationAreaIterable(); + void MarkLinearAllocationAreaBlack(); + void UnmarkLinearAllocationArea(); private: inline bool EnsureLab(AllocationOrigin origin); @@ -43,6 +60,9 @@ class ConcurrentAllocator { AllocationAlignment alignment, AllocationOrigin origin); + V8_EXPORT_PRIVATE AllocationResult AllocateOutsideLab( + int object_size, AllocationAlignment alignment, AllocationOrigin origin); + V8_EXPORT_PRIVATE Address PerformCollectionAndAllocateAgain( int object_size, AllocationAlignment alignment, AllocationOrigin origin); |
