summaryrefslogtreecommitdiffstats
path: root/src/osx
diff options
context:
space:
mode:
authorJos Dehaes <jos.dehaes@gmail.com>2021-10-08 22:28:10 +0200
committerJos Dehaes <jos.dehaes@gmail.com>2021-10-08 22:28:10 +0200
commitbfa0629e7d1e50f88d9a1207930e2f39270fc189 (patch)
tree73966fdf713eaa1ce506af0f1d0c96ec953422aa /src/osx
parenta016ff8a039634bc37a22a4a84b31055b3cfab37 (diff)
fill in 0 for ioticks
Diffstat (limited to 'src/osx')
-rw-r--r--src/osx/btop_collect.cpp13
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;
}