mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-25 22:04:51 +02:00
Merge
This commit is contained in:
commit
b2d6f9f78a
29 changed files with 270 additions and 390 deletions
|
@ -5272,7 +5272,6 @@ jlong os::thread_cpu_time(Thread *thread, bool user_sys_cpu_time) {
|
|||
//
|
||||
|
||||
static jlong slow_thread_cpu_time(Thread *thread, bool user_sys_cpu_time) {
|
||||
static bool proc_task_unchecked = true;
|
||||
pid_t tid = thread->osthread()->thread_id();
|
||||
char *s;
|
||||
char stat[2048];
|
||||
|
@ -5285,24 +5284,7 @@ static jlong slow_thread_cpu_time(Thread *thread, bool user_sys_cpu_time) {
|
|||
long ldummy;
|
||||
FILE *fp;
|
||||
|
||||
snprintf(proc_name, 64, "/proc/%d/stat", tid);
|
||||
|
||||
// The /proc/<tid>/stat aggregates per-process usage on
|
||||
// new Linux kernels 2.6+ where NPTL is supported.
|
||||
// The /proc/self/task/<tid>/stat still has the per-thread usage.
|
||||
// See bug 6328462.
|
||||
// There possibly can be cases where there is no directory
|
||||
// /proc/self/task, so we check its availability.
|
||||
if (proc_task_unchecked && os::Linux::is_NPTL()) {
|
||||
// This is executed only once
|
||||
proc_task_unchecked = false;
|
||||
fp = fopen("/proc/self/task", "r");
|
||||
if (fp != NULL) {
|
||||
snprintf(proc_name, 64, "/proc/self/task/%d/stat", tid);
|
||||
fclose(fp);
|
||||
}
|
||||
}
|
||||
|
||||
snprintf(proc_name, 64, "/proc/self/task/%d/stat", tid);
|
||||
fp = fopen(proc_name, "r");
|
||||
if ( fp == NULL ) return -1;
|
||||
statlen = fread(stat, 1, 2047, fp);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue