Skip to content

Commit

Permalink
darwin: avoid double division by zero on startup
Browse files Browse the repository at this point in the history
  • Loading branch information
cgzones authored and BenBE committed Apr 20, 2024
1 parent 6f14269 commit 0c00275
Showing 1 changed file with 12 additions and 6 deletions.
18 changes: 12 additions & 6 deletions darwin/Platform.c
Original file line number Diff line number Diff line change
Expand Up @@ -272,12 +272,18 @@ double Platform_setCPUValues(Meter* mtr, unsigned int cpu) {
total += (double)curr->cpu_ticks[i] - (double)prev->cpu_ticks[i];
}

mtr->values[CPU_METER_NICE]
= ((double)curr->cpu_ticks[CPU_STATE_NICE] - (double)prev->cpu_ticks[CPU_STATE_NICE]) * 100.0 / total;
mtr->values[CPU_METER_NORMAL]
= ((double)curr->cpu_ticks[CPU_STATE_USER] - (double)prev->cpu_ticks[CPU_STATE_USER]) * 100.0 / total;
mtr->values[CPU_METER_KERNEL]
= ((double)curr->cpu_ticks[CPU_STATE_SYSTEM] - (double)prev->cpu_ticks[CPU_STATE_SYSTEM]) * 100.0 / total;
if (total > 1e-6) {
mtr->values[CPU_METER_NICE]
= ((double)curr->cpu_ticks[CPU_STATE_NICE] - (double)prev->cpu_ticks[CPU_STATE_NICE]) * 100.0 / total;
mtr->values[CPU_METER_NORMAL]
= ((double)curr->cpu_ticks[CPU_STATE_USER] - (double)prev->cpu_ticks[CPU_STATE_USER]) * 100.0 / total;
mtr->values[CPU_METER_KERNEL]
= ((double)curr->cpu_ticks[CPU_STATE_SYSTEM] - (double)prev->cpu_ticks[CPU_STATE_SYSTEM]) * 100.0 / total;
} else {
mtr->values[CPU_METER_NICE] = 0.0;
mtr->values[CPU_METER_NORMAL] = 0.0;
mtr->values[CPU_METER_KERNEL] = 0.0;
}

mtr->curItems = 3;

Expand Down

0 comments on commit 0c00275

Please sign in to comment.