Mercurial > hg > graal-jvmci-8
comparison src/share/vm/gc_implementation/g1/concurrentMark.hpp @ 17950:8a140676873f
8040804: G1: Concurrent mark stuck in loop calling os::elapsedVTime()
Reviewed-by: brutisso, tschatzl
author | pliden |
---|---|
date | Wed, 14 May 2014 14:32:23 +0200 |
parents | 58fc1b1523dc |
children | 52b4284cb496 0982ec23da03 |
comparison
equal
deleted
inserted
replaced
17949:487f09bf44e0 | 17950:8a140676873f |
---|---|
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"); |