Mercurial > hg > truffle
comparison src/share/vm/gc_implementation/g1/concurrentMark.hpp @ 18041:52b4284cb496
Merge with jdk8u20-b26
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Wed, 15 Oct 2014 16:02:50 +0200 |
parents | 4ca6dc0799b6 8a140676873f |
children | 7848fc12602b |
comparison
equal
deleted
inserted
replaced
17606:45d7b2c7029d | 18041:52b4284cb496 |
---|---|
23 */ | 23 */ |
24 | 24 |
25 #ifndef SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTMARK_HPP | 25 #ifndef SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTMARK_HPP |
26 #define SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTMARK_HPP | 26 #define SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTMARK_HPP |
27 | 27 |
28 #include "gc_implementation/g1/heapRegionSets.hpp" | 28 #include "gc_implementation/g1/heapRegionSet.hpp" |
29 #include "utilities/taskqueue.hpp" | 29 #include "utilities/taskqueue.hpp" |
30 | 30 |
31 class G1CollectedHeap; | 31 class G1CollectedHeap; |
32 class CMTask; | 32 class CMTask; |
33 typedef GenericTaskQueue<oop, mtGC> CMTaskQueue; | 33 typedef GenericTaskQueue<oop, mtGC> CMTaskQueue; |
540 // method. So, this way, each task will spend very little time in | 540 // method. So, this way, each task will spend very little time in |
541 // claim_region() and is allowed to call the regular clock method | 541 // claim_region() and is allowed to call the regular clock method |
542 // frequently. | 542 // frequently. |
543 HeapRegion* claim_region(uint worker_id); | 543 HeapRegion* claim_region(uint worker_id); |
544 | 544 |
545 // It determines whether we've run out of regions to scan. | 545 // It determines whether we've run out of regions to scan. Note that |
546 bool out_of_regions() { return _finger == _heap_end; } | 546 // the finger can point past the heap end in case the heap was expanded |
547 // to satisfy an allocation without doing a GC. This is fine, because all | |
548 // objects in those regions will be considered live anyway because of | |
549 // SATB guarantees (i.e. their TAMS will be equal to bottom). | |
550 bool out_of_regions() { return _finger >= _heap_end; } | |
547 | 551 |
548 // Returns the task with the given id | 552 // Returns the task with the given id |
549 CMTask* task(int id) { | 553 CMTask* task(int id) { |
550 assert(0 <= id && id < (int) _active_tasks, | 554 assert(0 <= id && id < (int) _active_tasks, |
551 "task id not within active bounds"); | 555 "task id not within active bounds"); |