From 3770769ed1b52052106274e3fe8c229b24b02553 Mon Sep 17 00:00:00 2001 From: fraggerfox Date: Sat, 12 Jun 2021 14:22:57 +0530 Subject: Replaces WRAP_SUBTRACT with saturatingSub inline function to reduce code duplication. --- linux/LinuxProcessList.c | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) (limited to 'linux/LinuxProcessList.c') diff --git a/linux/LinuxProcessList.c b/linux/LinuxProcessList.c index 356bb759..7452c199 100644 --- a/linux/LinuxProcessList.c +++ b/linux/LinuxProcessList.c @@ -1811,20 +1811,18 @@ static inline double LinuxProcessList_scanCPUTime(ProcessList* super) { // Since we do a subtraction (usertime - guest) and cputime64_to_clock_t() // used in /proc/stat rounds down numbers, it can lead to a case where the // integer overflow. - #define WRAP_SUBTRACT(a,b) (((a) > (b)) ? (a) - (b) : 0) - cpuData->userPeriod = WRAP_SUBTRACT(usertime, cpuData->userTime); - cpuData->nicePeriod = WRAP_SUBTRACT(nicetime, cpuData->niceTime); - cpuData->systemPeriod = WRAP_SUBTRACT(systemtime, cpuData->systemTime); - cpuData->systemAllPeriod = WRAP_SUBTRACT(systemalltime, cpuData->systemAllTime); - cpuData->idleAllPeriod = WRAP_SUBTRACT(idlealltime, cpuData->idleAllTime); - cpuData->idlePeriod = WRAP_SUBTRACT(idletime, cpuData->idleTime); - cpuData->ioWaitPeriod = WRAP_SUBTRACT(ioWait, cpuData->ioWaitTime); - cpuData->irqPeriod = WRAP_SUBTRACT(irq, cpuData->irqTime); - cpuData->softIrqPeriod = WRAP_SUBTRACT(softIrq, cpuData->softIrqTime); - cpuData->stealPeriod = WRAP_SUBTRACT(steal, cpuData->stealTime); - cpuData->guestPeriod = WRAP_SUBTRACT(virtalltime, cpuData->guestTime); - cpuData->totalPeriod = WRAP_SUBTRACT(totaltime, cpuData->totalTime); - #undef WRAP_SUBTRACT + cpuData->userPeriod = saturatingSub(usertime, cpuData->userTime); + cpuData->nicePeriod = saturatingSub(nicetime, cpuData->niceTime); + cpuData->systemPeriod = saturatingSub(systemtime, cpuData->systemTime); + cpuData->systemAllPeriod = saturatingSub(systemalltime, cpuData->systemAllTime); + cpuData->idleAllPeriod = saturatingSub(idlealltime, cpuData->idleAllTime); + cpuData->idlePeriod = saturatingSub(idletime, cpuData->idleTime); + cpuData->ioWaitPeriod = saturatingSub(ioWait, cpuData->ioWaitTime); + cpuData->irqPeriod = saturatingSub(irq, cpuData->irqTime); + cpuData->softIrqPeriod = saturatingSub(softIrq, cpuData->softIrqTime); + cpuData->stealPeriod = saturatingSub(steal, cpuData->stealTime); + cpuData->guestPeriod = saturatingSub(virtalltime, cpuData->guestTime); + cpuData->totalPeriod = saturatingSub(totaltime, cpuData->totalTime); cpuData->userTime = usertime; cpuData->niceTime = nicetime; cpuData->systemTime = systemtime; -- cgit v1.2.3