| 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
|
|
|
|
|