equal
deleted
inserted
replaced
334 } |
334 } |
335 |
335 |
336 // Phase 2: Concurrent Mark |
336 // Phase 2: Concurrent Mark |
337 { |
337 { |
338 ZStatTimer timer(ZPhaseConcurrentMark); |
338 ZStatTimer timer(ZPhaseConcurrentMark); |
339 ZHeap::heap()->mark(); |
339 ZHeap::heap()->mark(true /* initial */); |
340 } |
340 } |
341 |
341 |
342 // Phase 3: Pause Mark End |
342 // Phase 3: Pause Mark End |
343 { |
343 { |
344 ZMarkEndClosure cl; |
344 ZMarkEndClosure cl; |
345 while (!vm_operation(&cl)) { |
345 while (!vm_operation(&cl)) { |
346 // Phase 3.5: Concurrent Mark Continue |
346 // Phase 3.5: Concurrent Mark Continue |
347 ZStatTimer timer(ZPhaseConcurrentMarkContinue); |
347 ZStatTimer timer(ZPhaseConcurrentMarkContinue); |
348 ZHeap::heap()->mark(); |
348 ZHeap::heap()->mark(false /* initial */); |
349 } |
349 } |
350 } |
350 } |
351 |
351 |
352 // Phase 4: Concurrent Process Non-Strong References |
352 // Phase 4: Concurrent Process Non-Strong References |
353 { |
353 { |