< prev index next >

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

Print this page

        

*** 83,101 **** assert(Thread::current()->is_ConcurrentGC_thread(), "just checking"); assert(!CMSCollector::foregroundGCShouldWait(), "Possible deadlock"); assert(!ConcurrentMarkSweepThread::cms_thread_has_cms_token(), "Possible deadlock"); ! if (needs_pll()) { acquire_pending_list_lock(); } // Get the Heap_lock after the pending_list_lock. Heap_lock->lock(); if (lost_race()) { assert(_prologue_succeeded == false, "Initialized in c'tor"); Heap_lock->unlock(); ! if (needs_pll()) { release_and_notify_pending_list_lock(); } } else { _prologue_succeeded = true; } --- 83,101 ---- assert(Thread::current()->is_ConcurrentGC_thread(), "just checking"); assert(!CMSCollector::foregroundGCShouldWait(), "Possible deadlock"); assert(!ConcurrentMarkSweepThread::cms_thread_has_cms_token(), "Possible deadlock"); ! if (needs_pending_list_lock()) { acquire_pending_list_lock(); } // Get the Heap_lock after the pending_list_lock. Heap_lock->lock(); if (lost_race()) { assert(_prologue_succeeded == false, "Initialized in c'tor"); Heap_lock->unlock(); ! if (needs_pending_list_lock()) { release_and_notify_pending_list_lock(); } } else { _prologue_succeeded = true; }
*** 108,118 **** assert(!ConcurrentMarkSweepThread::cms_thread_has_cms_token(), "Possible deadlock"); // Release the Heap_lock first. Heap_lock->unlock(); ! if (needs_pll()) { release_and_notify_pending_list_lock(); } } ////////////////////////////////////////////////////////// --- 108,118 ---- assert(!ConcurrentMarkSweepThread::cms_thread_has_cms_token(), "Possible deadlock"); // Release the Heap_lock first. Heap_lock->unlock(); ! if (needs_pending_list_lock()) { release_and_notify_pending_list_lock(); } } //////////////////////////////////////////////////////////
< prev index next >