hotspot/src/os/linux/vm/os_linux.cpp
// pid_t gettid()
//
// Returns the kernel thread id of the currently running thread. Kernel
// thread id is used to access /proc.
//
// (Note that getpid() on LinuxThreads returns kernel thread id too; but
// on NPTL, it returns the same pid for all threads, as required by POSIX.)
//
pid_t os::Linux::gettid() {
{- -------------------------------------------
(1) gettid() システムコールで thread id を取得し, リターンする.
(ただし, LinuxThreads の場合は -1 が返されるだけなので,
この場合は getpid() での取得にフォールバックさせる.)
(なお, gettid() は glibc がラッパーを用意しておらず直接は呼べないので
syscall() 経由での呼び出しになっている.)
---------------------------------------- -}
int rslt = syscall(SYS_gettid);
if (rslt == -1) {
// old kernel, no NPTL support
return getpid();
} else {
return (pid_t)rslt;
}
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.