diff options
author | Daniel Lange <DLange@git.local> | 2022-02-04 11:23:04 +0100 |
---|---|---|
committer | Daniel Lange <DLange@git.local> | 2022-02-04 11:23:04 +0100 |
commit | 93c96b12c9cb349b762d38d69568d65cd3e4fbfd (patch) | |
tree | 9cb12bb8f6c16c23cbb19df65c2334449693187d /solaris/SolarisProcessList.c | |
parent | ebf0c067a1fdd4b4779b9557552c2278755dcab4 (diff) | |
parent | a6822e98434cf7da6fab033898094976d881ee0f (diff) | |
download | debian_htop-93c96b12c9cb349b762d38d69568d65cd3e4fbfd.tar.gz debian_htop-93c96b12c9cb349b762d38d69568d65cd3e4fbfd.tar.bz2 debian_htop-93c96b12c9cb349b762d38d69568d65cd3e4fbfd.zip |
Update upstream source from tag 'upstream/3.1.2'
Update to upstream version '3.1.2'
with Debian dir 5ce130e9471b77941bbd217b5ea8b7b3419a91c6
Diffstat (limited to 'solaris/SolarisProcessList.c')
-rw-r--r-- | solaris/SolarisProcessList.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/solaris/SolarisProcessList.c b/solaris/SolarisProcessList.c index 33c6477..71e85fc 100644 --- a/solaris/SolarisProcessList.c +++ b/solaris/SolarisProcessList.c @@ -363,6 +363,19 @@ static void SolarisProcessList_updateCwd(pid_t pid, Process* proc) { free_and_xStrdup(&proc->procCwd, target); } +/* Taken from: https://docs.oracle.com/cd/E19253-01/817-6223/6mlkidlom/index.html#tbl-sched-state */ +static inline ProcessState SolarisProcessList_getProcessState(char state) { + switch (state) { + case 'S': return SLEEPING; + case 'R': return RUNNABLE; + case 'O': return RUNNING; + case 'Z': return ZOMBIE; + case 'T': return STOPPED; + case 'I': return IDLE; + default: return UNKNOWN; + } +} + /* NOTE: the following is a callback function of type proc_walk_f * and MUST conform to the appropriate definition in order * to work. See libproc(3LIB) on a Solaris or Illumos @@ -402,7 +415,7 @@ static int SolarisProcessList_walkproc(psinfo_t* _psinfo, lwpsinfo_t* _lwpsinfo, proc->priority = _lwpsinfo->pr_pri; proc->nice = _lwpsinfo->pr_nice - NZERO; proc->processor = _lwpsinfo->pr_onpro; - proc->state = _lwpsinfo->pr_sname; + proc->state = SolarisProcessList_getProcessState(_lwpsinfo->pr_sname); // NOTE: This 'percentage' is a 16-bit BINARY FRACTIONS where 1.0 = 0x8000 // Source: https://docs.oracle.com/cd/E19253-01/816-5174/proc-4/index.html // (accessed on 18 November 2017) @@ -462,11 +475,11 @@ static int SolarisProcessList_walkproc(psinfo_t* _psinfo, lwpsinfo_t* _lwpsinfo, if (proc->isKernelThread && !pl->settings->hideKernelThreads) { pl->kernelThreads += proc->nlwp; pl->totalTasks += proc->nlwp + 1; - if (proc->state == 'O') { + if (proc->state == RUNNING) { pl->runningTasks++; } } else if (!proc->isKernelThread) { - if (proc->state == 'O') { + if (proc->state == RUNNING) { pl->runningTasks++; } if (pl->settings->hideUserlandThreads) { |