Tidy up process state handling

This commit is contained in:
marcluque
2021-10-12 00:45:09 +02:00
committed by cgzones
parent afa3fe4af1
commit d8dfbbd37c
11 changed files with 189 additions and 137 deletions

View File

@ -578,15 +578,16 @@ void ProcessList_goThroughEntries(ProcessList* super, bool pauseProcessUpdate) {
proc->nice = PRIO_MAX + 1 + kproc->ki_pri.pri_level - PRI_MIN_IDLE;
}
/* Taken from: https://github.com/freebsd/freebsd-src/blob/1ad2d87778970582854082bcedd2df0394fd4933/sys/sys/proc.h#L851 */
switch (kproc->ki_stat) {
case SIDL: proc->state = 'I'; break;
case SRUN: proc->state = 'R'; break;
case SSLEEP: proc->state = 'S'; break;
case SSTOP: proc->state = 'T'; break;
case SZOMB: proc->state = 'Z'; break;
case SWAIT: proc->state = 'D'; break;
case SLOCK: proc->state = 'L'; break;
default: proc->state = '?';
case SIDL: proc->state = IDLE; break;
case SRUN: proc->state = RUNNING; break;
case SSLEEP: proc->state = SLEEPING; break;
case SSTOP: proc->state = STOPPED; break;
case SZOMB: proc->state = ZOMBIE; break;
case SWAIT: proc->state = WAITING; break;
case SLOCK: proc->state = BLOCKED; break;
default: proc->state = UNKNOWN;
}
if (Process_isKernelThread(proc))
@ -595,7 +596,7 @@ void ProcessList_goThroughEntries(ProcessList* super, bool pauseProcessUpdate) {
proc->show = ! ((hideKernelThreads && Process_isKernelThread(proc)) || (hideUserlandThreads && Process_isUserlandThread(proc)));
super->totalTasks++;
if (proc->state == 'R')
if (proc->state == RUNNING)
super->runningTasks++;
proc->updated = true;
}