| Index: src/heap/incremental-marking.h
|
| diff --git a/src/heap/incremental-marking.h b/src/heap/incremental-marking.h
|
| index 9886f318387faa74d8fb550188648b9047d42651..d15ec37363fbf26216dd9556ffebc62fe4ce5e7e 100644
|
| --- a/src/heap/incremental-marking.h
|
| +++ b/src/heap/incremental-marking.h
|
| @@ -20,6 +20,8 @@ namespace internal {
|
| class MarkBit;
|
| class PagedSpace;
|
|
|
| +enum class StepOrigin { kV8, kTask };
|
| +
|
| class IncrementalMarking {
|
| public:
|
| enum State { STOPPED, SWEEPING, MARKING, COMPLETE };
|
| @@ -97,7 +99,8 @@ class IncrementalMarking {
|
| // anymore because a single step would exceed the deadline.
|
| double AdvanceIncrementalMarking(double deadline_in_ms,
|
| CompletionAction completion_action,
|
| - ForceCompletionAction force_completion);
|
| + ForceCompletionAction force_completion,
|
| + StepOrigin step_origin);
|
|
|
| // It's hard to know how much work the incremental marker should do to make
|
| // progress in the face of the mutator creating new work for it. We start
|
| @@ -129,7 +132,7 @@ class IncrementalMarking {
|
| void NotifyAllocatedBytes(intptr_t allocated_bytes);
|
|
|
| void Step(intptr_t bytes_to_process, CompletionAction action,
|
| - ForceCompletionAction completion);
|
| + ForceCompletionAction completion, StepOrigin origin);
|
|
|
| inline void RestartIfNotMarking();
|
|
|
| @@ -294,6 +297,7 @@ class IncrementalMarking {
|
| intptr_t bytes_scanned_;
|
| intptr_t allocated_;
|
| intptr_t write_barriers_invoked_since_last_step_;
|
| + intptr_t bytes_marked_ahead_of_schedule_;
|
| size_t idle_marking_delay_counter_;
|
|
|
| int unscanned_bytes_of_large_object_;
|
|
|