hotspot/src/os/solaris/vm/os_solaris.cpp
OSReturn os::set_native_priority(Thread* thread, int newpri) {
{- -------------------------------------------
(1) (assert)
---------------------------------------- -}
assert(newpri >= MinimumPriority && newpri <= MaximumPriority, "bad priority mapping");
{- -------------------------------------------
(1) thr_setprio() システムコールで優先度を変更する.
さらに, 以下のどちらかが成り立つ場合は, set_lwp_priority() で LWP レベルの優先度も変更する.
* T2 libthread を使っている場合
* UseBoundThreads オプションが指定されており, 対象のスレッドが HotSpot 内で作られたものである場合
(ただし, UseThreadPriorities オプションが指定されていない場合には, 何もしない)
---------------------------------------- -}
if ( !UseThreadPriorities ) return OS_OK;
int status = thr_setprio(thread->osthread()->thread_id(), newpri);
if ( os::Solaris::T2_libthread() || (UseBoundThreads && thread->osthread()->is_vm_created()) )
status |= (set_lwp_priority (thread->osthread()->thread_id(),
thread->osthread()->lwp_id(), newpri ));
return (status == 0) ? OS_OK : OS_ERR;
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.