hotspot/src/os/solaris/vm/os_solaris.cpp
// Used to convert frequent JVM_Yield() to nops
bool os::dont_yield() {
{- -------------------------------------------
(1) DontYieldALot オプションが指定されていなければ false をリターンするだけ.
指定されている場合には, 最後に yield したときからの経過時間に応じて決める.
(DontYieldALotInterval(ミリ秒) 以上経過していれば false, そうでなければ true)
---------------------------------------- -}
if (DontYieldALot) {
static hrtime_t last_time = 0;
hrtime_t diff = getTimeNanos() - last_time;
if (diff < DontYieldALotInterval * 1000000)
return true;
last_time += diff;
return false;
}
else {
return false;
}
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.