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/heapRegionSet.hpp" |
28 #include "gc_implementation/g1/heapRegionSet.hpp" |
|
29 #include "gc_implementation/shared/gcId.hpp" |
29 #include "utilities/taskqueue.hpp" |
30 #include "utilities/taskqueue.hpp" |
30 |
31 |
31 class G1CollectedHeap; |
32 class G1CollectedHeap; |
32 class CMTask; |
33 class CMTask; |
33 typedef GenericTaskQueue<oop, mtGC> CMTaskQueue; |
34 typedef GenericTaskQueue<oop, mtGC> CMTaskQueue; |
442 volatile bool _has_overflown; |
443 volatile bool _has_overflown; |
443 // true: marking is concurrent, false: we're in remark |
444 // true: marking is concurrent, false: we're in remark |
444 volatile bool _concurrent; |
445 volatile bool _concurrent; |
445 // set at the end of a Full GC so that marking aborts |
446 // set at the end of a Full GC so that marking aborts |
446 volatile bool _has_aborted; |
447 volatile bool _has_aborted; |
|
448 GCId _aborted_gc_id; |
447 |
449 |
448 // used when remark aborts due to an overflow to indicate that |
450 // used when remark aborts due to an overflow to indicate that |
449 // another concurrent marking phase should start |
451 // another concurrent marking phase should start |
450 volatile bool _restart_for_overflow; |
452 volatile bool _restart_for_overflow; |
451 |
453 |
823 // Called to abort the marking cycle after a Full GC takes palce. |
825 // Called to abort the marking cycle after a Full GC takes palce. |
824 void abort(); |
826 void abort(); |
825 |
827 |
826 bool has_aborted() { return _has_aborted; } |
828 bool has_aborted() { return _has_aborted; } |
827 |
829 |
|
830 const GCId& concurrent_gc_id(); |
|
831 |
828 // This prints the global/local fingers. It is used for debugging. |
832 // This prints the global/local fingers. It is used for debugging. |
829 NOT_PRODUCT(void print_finger();) |
833 NOT_PRODUCT(void print_finger();) |
830 |
834 |
831 void print_summary_info(); |
835 void print_summary_info(); |
832 |
836 |