hotspot/src/os/linux/vm/threadCritical_linux.cpp
ThreadCritical::ThreadCritical() {
{- -------------------------------------------
(1) (変数宣言など)
---------------------------------------- -}
pthread_t self = pthread_self();
{- -------------------------------------------
(1) 現在ロックを保持しているのがカレントスレッドでなければ,
pthread_mutex_lock() でロックの確保を行う
(必要ならばここでブロック).
---------------------------------------- -}
if (self != tc_owner) {
int ret = pthread_mutex_lock(&tc_mutex);
guarantee(ret == 0, "fatal error with pthread_mutex_lock()");
assert(tc_count == 0, "Lock acquired with illegal reentry count.");
tc_owner = self;
}
{- -------------------------------------------
(1) ロックの再帰確保数をインクリメントしておく.
---------------------------------------- -}
tc_count++;
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.