Top


定義場所(file name)

hotspot/src/share/vm/runtime/thread.hpp

名前(function name)

  void check_and_wait_while_suspended() {

本体部(body)

  {- -------------------------------------------
  (1) (assert)
      ---------------------------------------- -}

        assert(JavaThread::current() == this, "sanity check");

  {- -------------------------------------------
  (1) JavaThread::handle_special_suspend_equivalent_condition() が false を返すまで
      (= suspend 状態ではない状態になるまで), 
      JavaThread::java_suspend_self() による待機を繰り返す.
      ---------------------------------------- -}

        bool do_self_suspend;
        do {
          // were we externally suspended while we were waiting?
          do_self_suspend = handle_special_suspend_equivalent_condition();
          if (do_self_suspend) {
            // don't surprise the thread that suspended us by returning
            java_suspend_self();
            set_suspend_equivalent();
          }
        } while (do_self_suspend);
      }

This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.