Chromium Code Reviews| Index: src/heap.h |
| diff --git a/src/heap.h b/src/heap.h |
| index 9281fa9d72e354bfc4e16d035bcc14e71eb7a158..1d13f6713fafc9a96b677b4f3b9dc7a0f5176a28 100644 |
| --- a/src/heap.h |
| +++ b/src/heap.h |
| @@ -1082,6 +1082,14 @@ class Heap { |
| inline bool CollectGarbage(AllocationSpace space, |
| const char* gc_reason = NULL); |
| + void StartParallelSweeping(SweeperType sweeper_type); |
| + void WaitUntilParallelSweepingCompleted(); |
| + void StealMemoryFromSweeperThreads(PagedSpace* space); |
| + void FinalizeParallelSweeping(); |
| + bool IsConcurrentSweepingActivated(); |
| + bool AreSweepingThreadsActivated(); |
| + bool IsConcurrentSweepingPending(); |
|
Michael Starzinger
2013/01/24 17:15:54
We should try to move most of that functionality i
Hannes Payer (out of office)
2013/01/25 10:46:49
Done.
|
| + |
| static const int kNoGCFlags = 0; |
| static const int kSweepPreciselyMask = 1; |
| static const int kReduceMemoryFootprintMask = 2; |
| @@ -1567,7 +1575,18 @@ class Heap { |
| old_pointer_space()->IsSweepingComplete(); |
| } |
| + void SweepInParallel(PagedSpace* paged_space, |
|
Michael Starzinger
2013/01/24 17:15:54
This dispatcher should not be necessary.
Hannes Payer (out of office)
2013/01/25 10:46:49
Done.
|
| + SweeperType sweeper_type, |
| + FreeList* private_free_list, |
| + FreeList* free_list) { |
| + mark_compact_collector()->SweepInParallel(paged_space, |
| + sweeper_type, |
| + private_free_list, |
| + free_list); |
| + } |
| + |
| bool AdvanceSweepers(int step_size) { |
|
Michael Starzinger
2013/01/24 17:15:54
This is still being called from the idle notificat
Hannes Payer (out of office)
2013/01/25 10:46:49
Done.
|
| + ASSERT(!FLAG_parallel_sweeping && !FLAG_concurrent_sweeping); |
| bool sweeping_complete = old_data_space()->AdvanceSweeper(step_size); |
| sweeping_complete &= old_pointer_space()->AdvanceSweeper(step_size); |
| return sweeping_complete; |