blob: 0fc10bc52c7ad0fe1f0561da63df9c3673606237 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
Backport of 265a7b8a501174e2f5c8268a76b5e88d6688ad70
---
--- a/linux/LinuxProcessList.c
+++ b/linux/LinuxProcessList.c
@@ -398,6 +398,7 @@
unsigned long long last_read = process->io_read_bytes;
unsigned long long last_write = process->io_write_bytes;
+
char* buf = buffer;
char* line = NULL;
while ((line = strsep(&buf, "\n")) != NULL) {
@@ -408,7 +409,7 @@
} else if (String_startsWith(line + 1, "ead_bytes: ")) {
process->io_read_bytes = strtoull(line + 12, NULL, 10);
process->io_rate_read_bps =
- ((double)(process->io_read_bytes - last_read)) / (((double)(now - process->io_rate_read_time)) / 1000);
+ now > process->io_rate_read_time ? ((double)(process->io_read_bytes - last_read)) / (((double)(now - process->io_rate_read_time)) / 1000) : NAN;
process->io_rate_read_time = now;
}
break;
@@ -418,7 +419,7 @@
} else if (String_startsWith(line + 1, "rite_bytes: ")) {
process->io_write_bytes = strtoull(line + 13, NULL, 10);
process->io_rate_write_bps =
- ((double)(process->io_write_bytes - last_write)) / (((double)(now - process->io_rate_write_time)) / 1000);
+ now > process->io_rate_write_time ? ((double)(process->io_write_bytes - last_write)) / (((double)(now - process->io_rate_write_time)) / 1000) : NAN;
process->io_rate_write_time = now;
}
break;
|