< prev index next >

src/share/vm/gc/cms/concurrentMarkSweepGeneration.cpp

Print this page
rev 11970 : imported patch base_volatiles

*** 3028,3038 **** CMSCollector* _collector; uint _n_workers; // requested/desired # workers bool _result; CompactibleFreeListSpace* _cms_space; char _pad_front[64]; // padding to ... ! HeapWord* _global_finger; // ... avoid sharing cache line char _pad_back[64]; HeapWord* _restart_addr; // Exposed here for yielding support Mutex* const _bit_map_lock; --- 3028,3038 ---- CMSCollector* _collector; uint _n_workers; // requested/desired # workers bool _result; CompactibleFreeListSpace* _cms_space; char _pad_front[64]; // padding to ... ! HeapWord* volatile _global_finger; // ... avoid sharing cache line char _pad_back[64]; HeapWord* _restart_addr; // Exposed here for yielding support Mutex* const _bit_map_lock;
*** 3066,3076 **** OopTaskQueueSet* task_queues() { return _task_queues; } OopTaskQueue* work_queue(int i) { return task_queues()->queue(i); } ! HeapWord** global_finger_addr() { return &_global_finger; } CMSConcMarkingTerminator* terminator() { return &_term; } virtual void set_for_termination(uint active_workers) { terminator()->reset_for_reuse(active_workers); --- 3066,3076 ---- OopTaskQueueSet* task_queues() { return _task_queues; } OopTaskQueue* work_queue(int i) { return task_queues()->queue(i); } ! HeapWord* volatile* global_finger_addr() { return &_global_finger; } CMSConcMarkingTerminator* terminator() { return &_term; } virtual void set_for_termination(uint active_workers) { terminator()->reset_for_reuse(active_workers);
*** 6552,6562 **** _mut->clear_range(mr); } // Note: the local finger doesn't advance while we drain // the stack below, but the global finger sure can and will. ! HeapWord** gfa = _task->global_finger_addr(); ParPushOrMarkClosure pushOrMarkClosure(_collector, _span, _bit_map, _work_queue, _overflow_stack, _finger, --- 6552,6562 ---- _mut->clear_range(mr); } // Note: the local finger doesn't advance while we drain // the stack below, but the global finger sure can and will. ! HeapWord* volatile* gfa = _task->global_finger_addr(); ParPushOrMarkClosure pushOrMarkClosure(_collector, _span, _bit_map, _work_queue, _overflow_stack, _finger,
*** 6719,6729 **** MemRegion span, CMSBitMap* bit_map, OopTaskQueue* work_queue, CMSMarkStack* overflow_stack, HeapWord* finger, ! HeapWord** global_finger_addr, ParMarkFromRootsClosure* parent) : MetadataAwareOopClosure(collector->ref_processor()), _collector(collector), _whole_span(collector->_span), _span(span), --- 6719,6729 ---- MemRegion span, CMSBitMap* bit_map, OopTaskQueue* work_queue, CMSMarkStack* overflow_stack, HeapWord* finger, ! HeapWord* volatile* global_finger_addr, ParMarkFromRootsClosure* parent) : MetadataAwareOopClosure(collector->ref_processor()), _collector(collector), _whole_span(collector->_span), _span(span),
< prev index next >