| Index: src/incremental-marking.cc
|
| ===================================================================
|
| --- src/incremental-marking.cc (revision 7374)
|
| +++ src/incremental-marking.cc (working copy)
|
| @@ -39,6 +39,7 @@
|
|
|
| double IncrementalMarking::steps_took_ = 0;
|
| int IncrementalMarking::steps_count_ = 0;
|
| +bool IncrementalMarking::should_hurry_ = false;
|
|
|
| static intptr_t allocated = 0;
|
|
|
| @@ -145,7 +146,7 @@
|
|
|
| bool IncrementalMarking::WorthActivating() {
|
| #ifndef DEBUG
|
| - static const intptr_t kActivationThreshold = 20*MB;
|
| + static const intptr_t kActivationThreshold = 8 * MB;
|
| #else
|
| // TODO(gc) consider setting this to some low level so that some
|
| // debug tests run with incremental marking and some without.
|
| @@ -312,6 +313,12 @@
|
|
|
| void IncrementalMarking::MarkingComplete() {
|
| state_ = COMPLETE;
|
| + // We will set the stack guard to request a GC now. This will mean the rest
|
| + // of the GC gets performed as soon as possible (we can't do a GC here in a
|
| + // record-write context). If a few things get allocated between now and then
|
| + // that shouldn't make us do a scavenge and keep being incremental, so we set
|
| + // the should-hurry flag to indicate that there can't be much work left to do.
|
| + set_should_hurry(true);
|
| if (FLAG_trace_incremental_marking) {
|
| PrintF("[IncrementalMarking] Complete (normal).\n");
|
| }
|
|
|