src/share/vm/runtime/objectMonitor.cpp

changeset 6708
4a1062dc52d1
parent 6520
a7d4d4655766
child 6876
710a3c8b516e
child 6911
ce8f6bb717c9
equal deleted inserted replaced
6707:660b3f6bf7d7 6708:4a1062dc52d1
416 exit (false, Self) ; 416 exit (false, Self) ;
417 417
418 jt->java_suspend_self(); 418 jt->java_suspend_self();
419 } 419 }
420 Self->set_current_pending_monitor(NULL); 420 Self->set_current_pending_monitor(NULL);
421
422 // We cleared the pending monitor info since we've just gotten past
423 // the enter-check-for-suspend dance and we now own the monitor free
424 // and clear, i.e., it is no longer pending. The ThreadBlockInVM
425 // destructor can go to a safepoint at the end of this block. If we
426 // do a thread dump during that safepoint, then this thread will show
427 // as having "-locked" the monitor, but the OS and java.lang.Thread
428 // states will still report that the thread is blocked trying to
429 // acquire it.
421 } 430 }
422 431
423 Atomic::dec_ptr(&_count); 432 Atomic::dec_ptr(&_count);
424 assert (_count >= 0, "invariant") ; 433 assert (_count >= 0, "invariant") ;
425 Self->_Stalled = 0 ; 434 Self->_Stalled = 0 ;

mercurial