hotspot/src/share/vm/oops/instanceRefKlass.cpp
void instanceRefKlass::acquire_pending_list_lock(BasicLock *pending_list_basic_lock) {
  {- -------------------------------------------
  (1) (変数宣言など) (See: PreserveExceptionMark)
      ---------------------------------------- -}
      // we may enter this with pending exception set
      PRESERVE_EXCEPTION_MARK;  // exceptions are never thrown, needed for TRAPS argument
  {- -------------------------------------------
  (1) java_lang_ref_Reference::pending_list_lock() に対して 
      ObjectSynchronizer::fast_enter() でロックを取得する.
      ---------------------------------------- -}
      Handle h_lock(THREAD, java_lang_ref_Reference::pending_list_lock());
      ObjectSynchronizer::fast_enter(h_lock, pending_list_basic_lock, false, THREAD);
  {- -------------------------------------------
  (1) (assert)
      ---------------------------------------- -}
      assert(ObjectSynchronizer::current_thread_holds_lock(
               JavaThread::current(), h_lock),
             "Locking should have succeeded");
  {- -------------------------------------------
  (1) 
      ---------------------------------------- -}
      if (HAS_PENDING_EXCEPTION) CLEAR_PENDING_EXCEPTION;
    }
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.