< prev index next >

src/share/vm/runtime/thread.cpp

Print this page
rev 13002 : 8180175: ObjectSynchronizer only needs to iterate in-use monitors

*** 790,799 **** --- 790,805 ---- void Thread::oops_do(OopClosure* f, CodeBlobClosure* cf) { active_handles()->oops_do(f); // Do oop for ThreadShadow f->do_oop((oop*)&_pending_exception); handle_area()->oops_do(f); + + if (MonitorInUseLists) { + // When using thread local monitor lists, we scan them here, + // and the remaing global monitors in ObjectSynchronizer::oops_do(). + ObjectSynchronizer::thread_local_used_oops_do(this, f); + } } void Thread::metadata_handles_do(void f(Metadata*)) { // Only walk the Handles in Thread. if (metadata_handles() != NULL) {
< prev index next >