diff options
author | Jos Dehaes <jos.dehaes@gmail.com> | 2021-10-08 22:28:10 +0200 |
---|---|---|
committer | Jos Dehaes <jos.dehaes@gmail.com> | 2021-10-08 22:28:10 +0200 |
commit | bfa0629e7d1e50f88d9a1207930e2f39270fc189 (patch) | |
tree | 73966fdf713eaa1ce506af0f1d0c96ec953422aa /src/osx | |
parent | a016ff8a039634bc37a22a4a84b31055b3cfab37 (diff) |
fill in 0 for ioticks
Diffstat (limited to 'src/osx')
-rw-r--r-- | src/osx/btop_collect.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/osx/btop_collect.cpp b/src/osx/btop_collect.cpp index 6a8e199..2f5cd6a 100644 --- a/src/osx/btop_collect.cpp +++ b/src/osx/btop_collect.cpp @@ -516,7 +516,7 @@ namespace Mem { return bool(val); } - void collect_disk(unordered_flat_map<string, disk_info> &disks, unordered_flat_map<string, string> &mapping) { + void collect_disk(unordered_flat_map<string, disk_info> &disks, unordered_flat_map<string, string> &mapping, double uptime) { io_registry_entry_t drive; io_iterator_t drive_list; @@ -571,7 +571,12 @@ namespace Mem { while (cmp_greater(disk.io_write.size(), width * 2)) disk.io_write.pop_front(); Logger::debug("bytes written:" + std::to_string(writeBytes)); // IOKit does not give us IO times - disk.io_activity.push_back(0); + int64_t io_ticks = 0; + if (disk.io_activity.empty()) + disk.io_activity.push_back(0); + else + disk.io_activity.push_back(clamp((long)round((double)(io_ticks - disk.old_io.at(2)) / (uptime - old_uptime) / 10), 0l, 100l)); + disk.old_io.at(2) = io_ticks; while (cmp_greater(disk.io_activity.size(), width * 2)) disk.io_activity.pop_front(); } } @@ -711,7 +716,7 @@ namespace Mem { disk.used_percent = round((double)disk.used * 100 / disk.total); disk.free_percent = 100 - disk.used_percent; } - + //? Setup disks order in UI and add swap if enabled mem.disks_order.clear(); if (snapped and disks.contains("/mnt")) @@ -733,7 +738,7 @@ namespace Mem { mem.disks_order.push_back(name); disk_ios = 0; - collect_disk(disks, mapping); + collect_disk(disks, mapping, uptime); old_uptime = uptime; } |