#include <incremental_compactor.h>
Definition at line 20 of file incremental_compactor.h.
◆ Abort()
void dart::GCIncrementalCompactor::Abort |
( |
PageSpace * |
old_space | ) |
|
|
static |
Definition at line 47 of file incremental_compactor.cc.
47 {
50
51 {
52 MonitorLocker ml(old_space->tasks_lock());
53 switch (old_space->phase()) {
55 return;
58
59
60 return;
63 break;
64 default:
66 }
67 }
68
69 old_space->PauseConcurrentMarking();
70
72 if (!
page->is_evacuation_candidate())
continue;
73
74 page->set_evacuation_candidate(
false);
75
79 while (current < end) {
81 obj->untag()->ClearIsEvacuationCandidateUnsynchronized();
82 current += obj->untag()->HeapSize();
83 }
84 }
85
86 old_space->ResumeConcurrentMarking();
87}
static Thread * Current()
static ObjectPtr FromAddr(uword addr)
#define TIMELINE_FUNCTION_GC_DURATION(thread, name)
◆ Epilogue()
bool dart::GCIncrementalCompactor::Epilogue |
( |
PageSpace * |
old_space | ) |
|
|
static |
Definition at line 30 of file incremental_compactor.cc.
30 {
33 if (!HasEvacuationCandidates(old_space)) {
34 return false;
35 }
36 old_space->MakeIterable();
37 CheckFreeLists(old_space);
38 CheckPreEvacuate(old_space);
39 Evacuate(old_space);
40 CheckPostEvacuate(old_space);
41 CheckFreeLists(old_space);
42 FreeEvacuatedPages(old_space);
43 VerifyAfterIncrementalCompaction(old_space);
44 return true;
45}
◆ Prologue()
void dart::GCIncrementalCompactor::Prologue |
( |
PageSpace * |
old_space | ) |
|
|
static |
Definition at line 21 of file incremental_compactor.cc.
21 {
24 if (!SelectEvacuationCandidates(old_space)) {
25 return;
26 }
27 CheckFreeLists(old_space);
28}
The documentation for this class was generated from the following files: