From 1a1fddae851b344b0a89a8f2753e2d2487f34064 Mon Sep 17 00:00:00 2001 From: Benny Baumann Date: Sat, 10 Apr 2021 13:56:03 +0200 Subject: [PATCH] Pre-calculate isUserlandThread flag --- linux/LinuxProcess.h | 5 ++--- linux/LinuxProcessList.c | 1 + 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/linux/LinuxProcess.h b/linux/LinuxProcess.h index 4a52807e..20963bcb 100644 --- a/linux/LinuxProcess.h +++ b/linux/LinuxProcess.h @@ -33,6 +33,7 @@ in the source distribution for its full text. typedef struct LinuxProcess_ { Process super; bool isKernelThread; + bool isUserlandThread; IOPriority ioPriority; unsigned long int cminflt; unsigned long int cmajflt; @@ -106,9 +107,7 @@ typedef struct LinuxProcess_ { #define Process_isKernelThread(_process) (((const LinuxProcess*)(_process))->isKernelThread) -static inline bool Process_isUserlandThread(const Process* this) { - return this->pid != this->tgid; -} +#define Process_isUserlandThread(_process) (((const LinuxProcess *)(_process))->isUserlandThread) extern int pageSize; diff --git a/linux/LinuxProcessList.c b/linux/LinuxProcessList.c index c2effbfc..66b648ea 100644 --- a/linux/LinuxProcessList.c +++ b/linux/LinuxProcessList.c @@ -1315,6 +1315,7 @@ static bool LinuxProcessList_recurseProcTree(LinuxProcessList* this, openat_arg_ LinuxProcess* lp = (LinuxProcess*) proc; proc->tgid = parent ? parent->pid : pid; + lp->isUserlandThread = proc->pid != proc->tgid; #ifdef HAVE_OPENAT int procFd = openat(dirFd, entry->d_name, O_PATH | O_DIRECTORY | O_NOFOLLOW);