< prev index next >

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

Print this page

        

*** 8006,8023 **** } // Single threaded void CMSCollector::preserve_mark_if_necessary(oop p) { markWord m = p->mark_raw(); ! if (m.must_be_preserved(p)) { preserve_mark_work(p, m); } } void CMSCollector::par_preserve_mark_if_necessary(oop p) { markWord m = p->mark_raw(); ! if (m.must_be_preserved(p)) { MutexLocker x(ParGCRareEvent_lock, Mutex::_no_safepoint_check_flag); // Even though we read the mark word without holding // the lock, we are assured that it will not change // because we "own" this oop, so no other thread can // be trying to push it on the overflow list; see --- 8006,8023 ---- } // Single threaded void CMSCollector::preserve_mark_if_necessary(oop p) { markWord m = p->mark_raw(); ! if (p->mark_must_be_preserved(m)) { preserve_mark_work(p, m); } } void CMSCollector::par_preserve_mark_if_necessary(oop p) { markWord m = p->mark_raw(); ! if (p->mark_must_be_preserved(m)) { MutexLocker x(ParGCRareEvent_lock, Mutex::_no_safepoint_check_flag); // Even though we read the mark word without holding // the lock, we are assured that it will not change // because we "own" this oop, so no other thread can // be trying to push it on the overflow list; see
< prev index next >