--- old/src/share/vm/gc/cms/cmsOopClosures.hpp 2016-09-13 17:10:34.424104895 +0200 +++ new/src/share/vm/gc/cms/cmsOopClosures.hpp 2016-09-13 17:10:34.328104891 +0200 @@ -258,16 +258,15 @@ // the closure ParMarkFromRootsClosure. class ParPushOrMarkClosure: public MetadataAwareOopClosure { private: - CMSCollector* _collector; - MemRegion _whole_span; - MemRegion _span; // local chunk - CMSBitMap* _bit_map; - OopTaskQueue* _work_queue; - CMSMarkStack* _overflow_stack; - HeapWord* const _finger; - HeapWord** const _global_finger_addr; - ParMarkFromRootsClosure* const - _parent; + CMSCollector* _collector; + MemRegion _whole_span; + MemRegion _span; // local chunk + CMSBitMap* _bit_map; + OopTaskQueue* _work_queue; + CMSMarkStack* _overflow_stack; + HeapWord* const _finger; + HeapWord* volatile* const _global_finger_addr; + ParMarkFromRootsClosure* const _parent; protected: DO_OOP_WORK_DEFN public: @@ -277,7 +276,7 @@ OopTaskQueue* work_queue, CMSMarkStack* mark_stack, HeapWord* finger, - HeapWord** global_finger_addr, + HeapWord* volatile* global_finger_addr, ParMarkFromRootsClosure* parent); virtual void do_oop(oop* p); virtual void do_oop(narrowOop* p);