From d8dfbbd37ca7855be44391697424edac9015f14f Mon Sep 17 00:00:00 2001 From: marcluque Date: Tue, 12 Oct 2021 00:45:09 +0200 Subject: Tidy up process state handling --- darwin/DarwinProcess.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'darwin') 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; } -- cgit v1.2.3