diff options
author | marcluque <marc.luque@outlook.com> | 2021-10-12 00:45:09 +0200 |
---|---|---|
committer | cgzones <cgzones@googlemail.com> | 2021-11-02 20:02:54 +0100 |
commit | d8dfbbd37ca7855be44391697424edac9015f14f (patch) | |
tree | 598c12d03eca299cf7096a86c215243d5d63e504 /darwin | |
parent | afa3fe4af1af9dc5347c06578fa2fb940f8cfc8d (diff) |
Tidy up process state handling
Diffstat (limited to 'darwin')
-rw-r--r-- | darwin/DarwinProcess.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/darwin/DarwinProcess.c b/darwin/DarwinProcess.c index 43ca2d66..95ae960f 100644 --- a/darwin/DarwinProcess.c +++ b/darwin/DarwinProcess.c @@ -331,7 +331,7 @@ void DarwinProcess_setFromKInfoProc(Process* proc, const struct kinfo_proc* ps, proc->nice = ep->p_nice; proc->priority = ep->p_priority; - proc->state = (ep->p_stat == SZOMB) ? 'Z' : '?'; + proc->state = (ep->p_stat == SZOMB) ? ZOMBIE : UNKNOWN; /* Make sure the updated flag is set */ proc->updated = true; @@ -386,7 +386,7 @@ void DarwinProcess_scanThreads(DarwinProcess* dp) { return; } - if (proc->state == 'Z') { + if (proc->state == ZOMBIE) { return; } @@ -430,15 +430,15 @@ void DarwinProcess_scanThreads(DarwinProcess* dp) { vm_deallocate(mach_task_self(), (vm_address_t) thread_list, sizeof(thread_port_array_t) * thread_count); mach_port_deallocate(mach_task_self(), port); - char state = '?'; + /* Taken from: https://github.com/apple/darwin-xnu/blob/2ff845c2e033bd0ff64b5b6aa6063a1f8f65aa32/osfmk/mach/thread_info.h#L129 */ switch (run_state) { - case TH_STATE_RUNNING: state = 'R'; break; - case TH_STATE_STOPPED: state = 'S'; break; - case TH_STATE_WAITING: state = 'W'; break; - case TH_STATE_UNINTERRUPTIBLE: state = 'U'; break; - case TH_STATE_HALTED: state = 'H'; break; + case TH_STATE_RUNNING: proc->state = RUNNING; break; + case TH_STATE_STOPPED: proc->state = STOPPED; break; + case TH_STATE_WAITING: proc->state = WAITING; break; + case TH_STATE_UNINTERRUPTIBLE: proc->state = UNINTERRUPTIBLE_WAIT; break; + case TH_STATE_HALTED: proc->state = BLOCKED; break; + default: proc->state = UNKNOWN; } - proc->state = state; } |