summaryrefslogtreecommitdiff
path: root/chromium/v8/src/heap/concurrent-allocator.h
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-12 14:27:29 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-13 09:35:20 +0000
commitc30a6232df03e1efbd9f3b226777b07e087a1122 (patch)
treee992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/v8/src/heap/concurrent-allocator.h
parent7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff)
downloadqtwebengine-chromium-85-based.tar.gz
BASELINE: Update Chromium to 85.0.4183.14085-based
Change-Id: Iaa42f4680837c57725b1344f108c0196741f6057 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/v8/src/heap/concurrent-allocator.h')
-rw-r--r--chromium/v8/src/heap/concurrent-allocator.h20
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);