diff --git a/Process.c b/Process.c index 6551afd7..18360802 100644 --- a/Process.c +++ b/Process.c @@ -174,6 +174,8 @@ typedef struct ProcessClass_ { #define Process_isChildOf(process_, pid_) (process_->tgid == pid_ || (process_->tgid == process_->pid && process_->ppid == pid_)) +#define Process_sortState(state) ((state) == 'I' ? 0x100 : (state)) + }*/ static int Process_getuid = -1; @@ -598,7 +600,7 @@ long Process_compare(const void* v1, const void* v2) { return (p1->starttime_ctime - p2->starttime_ctime); } case STATE: - return (p1->state - p2->state); + return (Process_sortState(p1->state) - Process_sortState(p2->state)); case ST_UID: return (p1->st_uid - p2->st_uid); case TIME: diff --git a/Process.h b/Process.h index 5b8ffdba..5179bb6f 100644 --- a/Process.h +++ b/Process.h @@ -153,6 +153,8 @@ typedef struct ProcessClass_ { #define Process_isChildOf(process_, pid_) (process_->tgid == pid_ || (process_->tgid == process_->pid && process_->ppid == pid_)) +#define Process_sortState(state) ((state) == 'I' ? 0x100 : (state)) + #define ONE_K 1024L #define ONE_M (ONE_K * ONE_K) diff --git a/linux/LinuxProcess.c b/linux/LinuxProcess.c index 72408cfa..39b5647e 100644 --- a/linux/LinuxProcess.c +++ b/linux/LinuxProcess.c @@ -155,7 +155,7 @@ ProcessFieldData Process_fields[] = { [0] = { .name = "", .title = NULL, .description = NULL, .flags = 0, }, [PID] = { .name = "PID", .title = " PID ", .description = "Process/thread ID", .flags = 0, }, [COMM] = { .name = "Command", .title = "Command ", .description = "Command line", .flags = 0, }, - [STATE] = { .name = "STATE", .title = "S ", .description = "Process state (S sleeping, R running, D disk, Z zombie, T traced, W paging)", .flags = 0, }, + [STATE] = { .name = "STATE", .title = "S ", .description = "Process state (S sleeping, R running, D disk, Z zombie, T traced, W paging, I idle)", .flags = 0, }, [PPID] = { .name = "PPID", .title = " PPID ", .description = "Parent process ID", .flags = 0, }, [PGRP] = { .name = "PGRP", .title = " PGRP ", .description = "Process group ID", .flags = 0, }, [SESSION] = { .name = "SESSION", .title = " SID ", .description = "Process's session ID", .flags = 0, },