mirror of
https://github.com/localsend/localsend.git
synced 2026-08-07 07:14:52 +00:00
feat: throttle updates
This commit is contained in:
@@ -102,7 +102,18 @@ impl RsHttpClient {
|
||||
cancel_token: &RsCancellationToken,
|
||||
) -> Result<(), RsHttpClientError> {
|
||||
let content = resolve_file_content(binary, path, file_descriptor)?;
|
||||
let last_emit = std::cell::Cell::new(None::<std::time::Instant>);
|
||||
let progress = move |sent| {
|
||||
let now = std::time::Instant::now();
|
||||
let is_final = sent >= content_length;
|
||||
if !is_final {
|
||||
if let Some(last) = last_emit.get() {
|
||||
if now.duration_since(last) < std::time::Duration::from_millis(50) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
last_emit.set(Some(now));
|
||||
let progress = if content_length == 0 {
|
||||
1.0
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user