< prev index next >

src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp

Print this page

        

*** 1115,1124 **** --- 1115,1128 ---- // Fraction of current occupancy at which to start a CMS collection which // will collect this generation (at least). double _initiating_occupancy; + // Set to 1, if another GC thread already had a promotion failure. + // This is boolean, but used juint type to call OrderAccess. + juint _has_promotion_failed; + protected: // Shrink generation by specified size (returns false if unable to shrink) void shrink_free_list_by(size_t bytes); // Update statistics for GC
*** 1130,1139 **** --- 1134,1148 ---- // getter and initializer for _initiating_occupancy field. double initiating_occupancy() const { return _initiating_occupancy; } void init_initiating_occupancy(intx io, uintx tr); + // Support for CMSFastPromotionFailure + bool has_promotion_failed() { return OrderAccess::load_acquire(&_has_promotion_failed) != 0; } + bool set_promotion_failed() { OrderAccess::release_store(&_has_promotion_failed, 1); } + bool reset_promotion_failed() { OrderAccess::release_store(&_has_promotion_failed, 0); } + public: ConcurrentMarkSweepGeneration(ReservedSpace rs, size_t initial_byte_size, int level, CardTableRS* ct, bool use_adaptive_freelists, FreeBlockDictionary<FreeChunk>::DictionaryChoice);
< prev index next >