From 399add39ca380c6b97bf45685e041a8dca3bf0b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= Date: Wed, 27 Jan 2021 15:11:54 +0100 Subject: [PATCH] FreeBSD: simplify kernel thread logic --- freebsd/FreeBSDProcess.c | 8 +------- freebsd/FreeBSDProcess.h | 4 ++-- freebsd/FreeBSDProcessList.c | 6 +----- 3 files changed, 4 insertions(+), 14 deletions(-) diff --git a/freebsd/FreeBSDProcess.c b/freebsd/FreeBSDProcess.c index 76c4cf8b..2e1c384a 100644 --- a/freebsd/FreeBSDProcess.c +++ b/freebsd/FreeBSDProcess.c @@ -110,13 +110,7 @@ static int FreeBSDProcess_compareByKey(const Process* v1, const Process* v2, Pro } bool Process_isThread(const Process* this) { - const FreeBSDProcess* fp = (const FreeBSDProcess*) this; - - if (fp->kernel == 1 ) { - return 1; - } else { - return Process_isUserlandThread(this); - } + return Process_isKernelThread(this) || Process_isUserlandThread(this); } const ProcessClass FreeBSDProcess_class = { diff --git a/freebsd/FreeBSDProcess.h b/freebsd/FreeBSDProcess.h index 6bf2c93d..750e485e 100644 --- a/freebsd/FreeBSDProcess.h +++ b/freebsd/FreeBSDProcess.h @@ -20,14 +20,14 @@ extern const char* const nodevStr; typedef struct FreeBSDProcess_ { Process super; - int kernel; + bool isKernelThread; int jid; char* jname; const char* ttyPath; } FreeBSDProcess; static inline bool Process_isKernelThread(const Process* this) { - return ((const FreeBSDProcess*)this)->kernel == 1; + return ((const FreeBSDProcess*)this)->isKernelThread; } static inline bool Process_isUserlandThread(const Process* this) { diff --git a/freebsd/FreeBSDProcessList.c b/freebsd/FreeBSDProcessList.c index b53b8d52..6341470d 100644 --- a/freebsd/FreeBSDProcessList.c +++ b/freebsd/FreeBSDProcessList.c @@ -485,11 +485,7 @@ void ProcessList_goThroughEntries(ProcessList* super, bool pauseProcessUpdate) { if (!preExisting) { fp->jid = kproc->ki_jid; proc->pid = kproc->ki_pid; - if ( ! ((kproc->ki_pid == 0) || (kproc->ki_pid == 1) ) && kproc->ki_flag & P_SYSTEM) { - fp->kernel = 1; - } else { - fp->kernel = 0; - } + fp->isKernelThread = kproc->ki_pid != 0 && kproc->ki_pid != 1 && (kproc->ki_flag & P_SYSTEM); proc->ppid = kproc->ki_ppid; proc->tpgid = kproc->ki_tpgid; proc->tgid = kproc->ki_pid;