os::pd_start_thread(Thread* thread)

  • 引数で渡されたtheradに対応したOSスレッドをスタートさせる
    • threadはプラットフォーム非依存スレッド。
    • thread->osthread()で取得できるOSThreadオブジェクトがプラットフォーム依存スレッド
  • メソッド名の先頭の”pd”はPlatformDependent(プラットフォーム依存)
  • start_threadから呼び出される
//Linux版(jdk7/hotspot/src/os/linux/vm/os_linux.cpp)
Void os::pd_start_thread(Thread* thread) {
  OSThread * osthread = thread->osthread();
  assert(osthread->get_state() != INITIALIZED, "just checking");
  Monitor* sync_with_child = osthread->startThread_lock();
  MutexLockerEx ml(sync_with_child, Mutex::_no_safepoint_check_flag);
  sync_with_child->notify();
}