944 void incrementNumDirtyCards(size_t num) { _numDirtyCards += num; }
945 size_t numDirtyCards() { return _numDirtyCards; }
946
947 static bool foregroundGCShouldWait() { return _foregroundGCShouldWait; }
948 static void set_foregroundGCShouldWait(bool v) { _foregroundGCShouldWait = v; }
949 static bool foregroundGCIsActive() { return _foregroundGCIsActive; }
950 static void set_foregroundGCIsActive(bool v) { _foregroundGCIsActive = v; }
951 size_t sweep_count() const { return _sweep_count; }
952 void increment_sweep_count() { _sweep_count++; }
953
954 // Timers/stats for gc scheduling and incremental mode pacing.
955 CMSStats& stats() { return _stats; }
956
957 // Adaptive size policy
958 AdaptiveSizePolicy* size_policy();
959
960 static void print_on_error(outputStream* st);
961
962 // Debugging
963 void verify();
964 bool verify_after_remark(bool silent = VerifySilently);
965 void verify_ok_to_terminate() const PRODUCT_RETURN;
966 void verify_work_stacks_empty() const PRODUCT_RETURN;
967 void verify_overflow_empty() const PRODUCT_RETURN;
968
969 // Convenience methods in support of debugging
970 static const size_t skip_header_HeapWords() PRODUCT_RETURN0;
971 HeapWord* block_start(const void* p) const PRODUCT_RETURN0;
972
973 // Accessors
974 CMSMarkStack* verification_mark_stack() { return &_markStack; }
975 CMSBitMap* verification_mark_bm() { return &_verification_mark_bm; }
976
977 // Initialization errors
978 bool completed_initialization() { return _completed_initialization; }
979
980 void print_eden_and_survivor_chunk_arrays();
981 };
982
983 class CMSExpansionCause : public AllStatic {
984 public:
|
944 void incrementNumDirtyCards(size_t num) { _numDirtyCards += num; }
945 size_t numDirtyCards() { return _numDirtyCards; }
946
947 static bool foregroundGCShouldWait() { return _foregroundGCShouldWait; }
948 static void set_foregroundGCShouldWait(bool v) { _foregroundGCShouldWait = v; }
949 static bool foregroundGCIsActive() { return _foregroundGCIsActive; }
950 static void set_foregroundGCIsActive(bool v) { _foregroundGCIsActive = v; }
951 size_t sweep_count() const { return _sweep_count; }
952 void increment_sweep_count() { _sweep_count++; }
953
954 // Timers/stats for gc scheduling and incremental mode pacing.
955 CMSStats& stats() { return _stats; }
956
957 // Adaptive size policy
958 AdaptiveSizePolicy* size_policy();
959
960 static void print_on_error(outputStream* st);
961
962 // Debugging
963 void verify();
964 bool verify_after_remark();
965 void verify_ok_to_terminate() const PRODUCT_RETURN;
966 void verify_work_stacks_empty() const PRODUCT_RETURN;
967 void verify_overflow_empty() const PRODUCT_RETURN;
968
969 // Convenience methods in support of debugging
970 static const size_t skip_header_HeapWords() PRODUCT_RETURN0;
971 HeapWord* block_start(const void* p) const PRODUCT_RETURN0;
972
973 // Accessors
974 CMSMarkStack* verification_mark_stack() { return &_markStack; }
975 CMSBitMap* verification_mark_bm() { return &_verification_mark_bm; }
976
977 // Initialization errors
978 bool completed_initialization() { return _completed_initialization; }
979
980 void print_eden_and_survivor_chunk_arrays();
981 };
982
983 class CMSExpansionCause : public AllStatic {
984 public:
|