Allow incremental marking when expose_gc is turned on.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13072 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
hpayer@chromium.org 2012-11-28 08:43:10 +00:00
parent 09b1574baa
commit c772d649cf
3 changed files with 4 additions and 6 deletions

View File

@ -43,7 +43,7 @@ v8::Handle<v8::Value> GCExtension::GC(const v8::Arguments& args) {
if (args[0]->BooleanValue()) { if (args[0]->BooleanValue()) {
HEAP->CollectGarbage(NEW_SPACE, "gc extension"); HEAP->CollectGarbage(NEW_SPACE, "gc extension");
} else { } else {
HEAP->CollectAllGarbage(Heap::kNoGCFlags, "gc extension"); HEAP->CollectAllGarbage(Heap::kAbortIncrementalMarkingMask, "gc extension");
} }
return v8::Undefined(); return v8::Undefined();
} }

View File

@ -5322,8 +5322,7 @@ bool Heap::IdleNotification(int hint) {
AgeInlineCaches(); AgeInlineCaches();
} }
int mark_sweep_time = Min(TimeMarkSweepWouldTakeInMs(), 1000); int mark_sweep_time = Min(TimeMarkSweepWouldTakeInMs(), 1000);
if (hint >= mark_sweep_time && !FLAG_expose_gc && if (hint >= mark_sweep_time && incremental_marking()->IsStopped()) {
incremental_marking()->IsStopped()) {
HistogramTimerScope scope(isolate_->counters()->gc_context()); HistogramTimerScope scope(isolate_->counters()->gc_context());
CollectAllGarbage(kReduceMemoryFootprintMask, CollectAllGarbage(kReduceMemoryFootprintMask,
"idle notification: contexts disposed"); "idle notification: contexts disposed");
@ -5342,7 +5341,7 @@ bool Heap::IdleNotification(int hint) {
return false; return false;
} }
if (!FLAG_incremental_marking || FLAG_expose_gc || Serializer::enabled()) { if (!FLAG_incremental_marking || Serializer::enabled()) {
return IdleGlobalGC(); return IdleGlobalGC();
} }

View File

@ -493,8 +493,7 @@ bool IncrementalMarking::WorthActivating() {
static const intptr_t kActivationThreshold = 0; static const intptr_t kActivationThreshold = 0;
#endif #endif
return !FLAG_expose_gc && return FLAG_incremental_marking &&
FLAG_incremental_marking &&
!Serializer::enabled() && !Serializer::enabled() &&
heap_->PromotedSpaceSizeOfObjects() > kActivationThreshold; heap_->PromotedSpaceSizeOfObjects() > kActivationThreshold;
} }