diff --git a/src/main.rs b/src/main.rs index 4e39adf..0b52ca6 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,4 @@ -use std::{io, sync::{Arc, atomic::{AtomicU32, Ordering, AtomicBool, AtomicUsize}}, time::Duration}; +use std::{io, sync::{Arc, atomic::{AtomicU32, Ordering, AtomicBool, AtomicUsize, AtomicU64}}, time::Duration}; use futures_util::{StreamExt, future::{self, join_all}}; use tui::{backend::CrosstermBackend, Terminal}; use tokio::{sync::{mpsc, Mutex}, task::JoinHandle}; @@ -19,7 +19,7 @@ pub struct State { num_tasks: Arc, num_connections_open: Arc, num_tasks_errored: Arc, - num_bytes_downloaded: Arc, + num_kibibytes_downloaded: Arc, shutting_down: Arc, urls: Vec, log_send: mpsc::Sender, @@ -52,7 +52,7 @@ async fn async_main() { num_tasks: Default::default(), num_connections_open: Default::default(), num_tasks_errored: Default::default(), - num_bytes_downloaded: Default::default(), + num_kibibytes_downloaded: Default::default(), shutting_down: Default::default(), urls, log_send @@ -175,7 +175,7 @@ async fn download_task_inner(state: &State, load_id: usize, url: String) -> anyh while load_id < state.num_requests.load(Ordering::Relaxed) && !state.shutting_down.load(Ordering::Relaxed) { match stream.next().await { Some(Ok(bytes)) => { - state.num_bytes_downloaded.fetch_add(bytes.len().try_into()?, Ordering::Relaxed); + state.num_kibibytes_downloaded.fetch_add((bytes.len()/1024).try_into()?, Ordering::Relaxed); }, Some(Err(e)) => { log_send.send(format!("Task id {} errored while reading from {}: {}", load_id, &url, e)).await?; diff --git a/src/ui.rs b/src/ui.rs index 021aa67..47d7c11 100644 --- a/src/ui.rs +++ b/src/ui.rs @@ -118,7 +118,7 @@ fn ui(f: &mut Frame, ui_state: &UiState) { ui_state.state.num_tasks.load(Ordering::Relaxed), ui_state.state.num_connections_open.load(Ordering::Relaxed), ui_state.state.num_tasks_errored.load(Ordering::Relaxed), - ByteSize::b(ui_state.state.num_bytes_downloaded.load(Ordering::Relaxed).into()), + ByteSize::kib(ui_state.state.num_kibibytes_downloaded.load(Ordering::Relaxed).into()), ))); f.render_widget(Paragraph::new(text), layout[0]);