proc_state impl

This commit is contained in:
Doug MacEachern 2004-09-23 01:36:04 +00:00
parent 4ad0aea473
commit 03b36fdd4c
1 changed files with 24 additions and 4 deletions

View File

@ -264,12 +264,32 @@ int sigar_proc_time_get(sigar_t *sigar, sigar_pid_t pid,
int sigar_proc_state_get(sigar_t *sigar, sigar_pid_t pid, int sigar_proc_state_get(sigar_t *sigar, sigar_pid_t pid,
sigar_proc_state_t *procstate) sigar_proc_state_t *procstate)
{ {
SIGAR_SSTRCPY(procstate->name, "java"); struct tbl_procinfo info;
procstate->ppid = -1; int status;
status = table(TBL_PROCINFO, pid, &info, 1, sizeof(info));
if (status != 1) {
return errno;
}
SIGAR_SSTRCPY(procstate->name, info.pi_comm);
procstate->ppid = info.pi_ppid;
procstate->priority = -1; procstate->priority = -1;
procstate->nice = -1; procstate->nice = -1;
procstate->tty = -1; procstate->tty = info.pi_ttyd;
procstate->state = 'R';
switch (info.pi_status) {
case PI_ACTIVE:
procstate->state = 'R';
break;
case PI_ZOMBIE:
procstate->state = 'Z';
break;
default:
procstate->state = 'S';
break;
}
return SIGAR_OK; return SIGAR_OK;
} }