Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1538)

Unified Diff: src/heap/incremental-marking.h

Issue 1265423002: Use idle task to perform incremental marking steps. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Add tracing Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/heap/incremental-marking.h
diff --git a/src/heap/incremental-marking.h b/src/heap/incremental-marking.h
index 2c63cfcad6ade74752f06a6f51bc3cb127e29031..87eaf049ec160113e57ff39469f150d1703b124c 100644
--- a/src/heap/incremental-marking.h
+++ b/src/heap/incremental-marking.h
@@ -6,6 +6,7 @@
#define V8_HEAP_INCREMENTAL_MARKING_H_
+#include "src/cancelable-task.h"
#include "src/execution.h"
#include "src/heap/mark-compact.h"
#include "src/objects.h"
@@ -204,6 +205,12 @@ class IncrementalMarking {
GCCallbackFlags CallbackFlags() const { return gc_callback_flags_; }
+ void ScheduleIncrementalMarkingTask();
+ void NotifyIncrementalMarkingTaskRunning();
+ bool IsIncrementalMarkingTaskPending() {
+ return pending_incremental_marking_task_;
+ }
+
private:
int64_t SpaceLeftInOldSpace();
@@ -264,8 +271,21 @@ class IncrementalMarking {
GCCallbackFlags gc_callback_flags_;
+ bool pending_incremental_marking_task_;
+
DISALLOW_IMPLICIT_CONSTRUCTORS(IncrementalMarking);
};
+
+
+class IncrementalMarkingTask : public CancelableIdleTask {
+ public:
+ explicit IncrementalMarkingTask(Isolate* isolate)
+ : CancelableIdleTask(isolate) {}
+ // CancelableIdleTask overrides.
+ void RunInternal(double deadline_in_seconds) override;
+ enum Progress { kDone, kMoreWork };
+ static Progress Step(Heap* heap, double deadline_in_ms);
+};
}
} // namespace v8::internal

Powered by Google App Engine
This is Rietveld 408576698