Commit d3ee3df4 authored by hpayer@chromium.org's avatar hpayer@chromium.org

Force incremental marking when called from idle notification.

BUG=
R=ernstm@chromium.org, jochen@chromium.org

Review URL: https://codereview.chromium.org/426243002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22854 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 62714a58
......@@ -4169,7 +4169,7 @@ void Heap::MakeHeapIterable() {
void Heap::AdvanceIdleIncrementalMarking(intptr_t step_size) {
incremental_marking()->Step(step_size,
IncrementalMarking::NO_GC_VIA_STACK_GUARD);
IncrementalMarking::NO_GC_VIA_STACK_GUARD, true);
if (incremental_marking()->IsComplete()) {
bool uncommit = false;
......
......@@ -821,8 +821,8 @@ void IncrementalMarking::OldSpaceStep(intptr_t allocated) {
}
void IncrementalMarking::Step(intptr_t allocated_bytes,
CompletionAction action) {
void IncrementalMarking::Step(intptr_t allocated_bytes, CompletionAction action,
bool force_marking) {
if (heap_->gc_state() != Heap::NOT_IN_GC || !FLAG_incremental_marking ||
!FLAG_incremental_marking_steps ||
(state_ != SWEEPING && state_ != MARKING)) {
......@@ -831,7 +831,7 @@ void IncrementalMarking::Step(intptr_t allocated_bytes,
allocated_ += allocated_bytes;
if (allocated_ < kAllocatedThreshold &&
if (!force_marking && allocated_ < kAllocatedThreshold &&
write_barriers_invoked_since_last_step_ <
kWriteBarriersInvokedThreshold) {
return;
......
......@@ -83,7 +83,8 @@ class IncrementalMarking {
void OldSpaceStep(intptr_t allocated);
void Step(intptr_t allocated, CompletionAction action);
void Step(intptr_t allocated, CompletionAction action,
bool force_marking = false);
inline void RestartIfNotMarking() {
if (state_ == COMPLETE) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment