< prev index next >

src/share/vm/runtime/thread.cpp

Print this page
rev 13387 : [mq]: parallel_sp_cleaning.patch

*** 789,799 **** active_handles()->oops_do(f); // Do oop for ThreadShadow f->do_oop((oop*)&_pending_exception); handle_area()->oops_do(f); if (MonitorInUseLists) { ! if (Universe::heap()->supports_per_thread_monitor_deflation()) { ObjectSynchronizer::deflate_idle_monitors_and_oops_do(this, f); } else { ObjectSynchronizer::thread_local_used_oops_do(this, f); } } --- 789,800 ---- active_handles()->oops_do(f); // Do oop for ThreadShadow f->do_oop((oop*)&_pending_exception); handle_area()->oops_do(f); if (MonitorInUseLists) { ! VM_Operation* op = VMThread::vm_operation(); ! if (op != NULL && op->deflates_idle_monitors()) { ObjectSynchronizer::deflate_idle_monitors_and_oops_do(this, f); } else { ObjectSynchronizer::thread_local_used_oops_do(this, f); } }
*** 4389,4403 **** "Thread " PTR_FORMAT " has incorrect parity %d != %d", p2i(p), thread_parity, _thread_claim_parity); } } #endif // ASSERT ! void Threads::possibly_parallel_oops_do(bool is_par, OopClosure* f, CodeBlobClosure* cf) { int cp = Threads::thread_claim_parity(); ALL_JAVA_THREADS(p) { if (p->claim_oops_do(is_par, cp)) { p->oops_do(f, cf); } } VMThread* vmt = VMThread::vm_thread(); if (vmt->claim_oops_do(is_par, cp)) { vmt->oops_do(f, cf); --- 4390,4411 ---- "Thread " PTR_FORMAT " has incorrect parity %d != %d", p2i(p), thread_parity, _thread_claim_parity); } } #endif // ASSERT ! void Threads::possibly_parallel_oops_do(bool is_par, OopClosure* f, CodeBlobClosure* cf, CodeBlobClosure* nmethods_cl) { ! CodeBlobClosure* blobs; ! VM_Operation* op = VMThread::vm_operation(); ! if (op != NULL && op->marks_nmethods()) { ! } int cp = Threads::thread_claim_parity(); ALL_JAVA_THREADS(p) { if (p->claim_oops_do(is_par, cp)) { p->oops_do(f, cf); + if (nmethods_cl != NULL && ! p->is_Code_cache_sweeper_thread()) { + p->nmethods_do(nmethods_cl); + } } } VMThread* vmt = VMThread::vm_thread(); if (vmt->claim_oops_do(is_par, cp)) { vmt->oops_do(f, cf);
< prev index next >