Chromium Code Reviews| Index: src/mark-compact.cc |
| diff --git a/src/mark-compact.cc b/src/mark-compact.cc |
| index 366594f0f7304a2aea24b45db3d0e1739d53fcde..ae78aafbd40f70d38e019d73f5b4406b7ab1b5b5 100644 |
| --- a/src/mark-compact.cc |
| +++ b/src/mark-compact.cc |
| @@ -550,16 +550,15 @@ void MarkCompactCollector::StartSweeperThreads() { |
| void MarkCompactCollector::WaitUntilSweepingCompleted() { |
| - if (sweeping_pending_) { |
| - for (int i = 0; i < FLAG_sweeper_threads; i++) { |
| - heap()->isolate()->sweeper_threads()[i]->WaitForSweeperThread(); |
| - } |
| - sweeping_pending_ = false; |
| - StealMemoryFromSweeperThreads(heap()->paged_space(OLD_DATA_SPACE)); |
| - StealMemoryFromSweeperThreads(heap()->paged_space(OLD_POINTER_SPACE)); |
| - heap()->paged_space(OLD_DATA_SPACE)->ResetUnsweptFreeBytes(); |
| - heap()->paged_space(OLD_POINTER_SPACE)->ResetUnsweptFreeBytes(); |
| + ASSERT(sweeping_pending_ == true); |
| + for (int i = 0; i < FLAG_sweeper_threads; i++) { |
| + heap()->isolate()->sweeper_threads()[i]->WaitForSweeperThread(); |
| } |
| + sweeping_pending_ = false; |
| + StealMemoryFromSweeperThreads(heap()->paged_space(OLD_DATA_SPACE)); |
| + StealMemoryFromSweeperThreads(heap()->paged_space(OLD_POINTER_SPACE)); |
| + heap()->paged_space(OLD_DATA_SPACE)->ResetUnsweptFreeBytes(); |
| + heap()->paged_space(OLD_POINTER_SPACE)->ResetUnsweptFreeBytes(); |
| } |
| @@ -908,7 +907,7 @@ void MarkCompactCollector::Prepare(GCTracer* tracer) { |
| ASSERT(!FLAG_never_compact || !FLAG_always_compact); |
| - if (AreSweeperThreadsActivated() && FLAG_concurrent_sweeping) { |
| + if (sweeping_pending_) { |
|
Michael Starzinger
2013/03/04 14:43:08
Better use the accessor (i.e. IsConcurrentSweeping
Hannes Payer (out of office)
2013/03/04 14:56:11
Done.
|
| // Instead of waiting we could also abort the sweeper threads here. |
| WaitUntilSweepingCompleted(); |
| FinalizeSweeping(); |