diff options
author | metamuffin <metamuffin@disroot.org> | 2022-12-03 16:30:52 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2022-12-03 16:30:52 +0100 |
commit | 5eca5cc68bd533e4599035ba2694ccf8dfae09f3 (patch) | |
tree | c4595eec306984381ea42210f30903868485ea9e /client-native-rift/src | |
parent | 2f8ea58c6186256078aeb9bdffa72675be185245 (diff) | |
download | keks-meet-5eca5cc68bd533e4599035ba2694ccf8dfae09f3.tar keks-meet-5eca5cc68bd533e4599035ba2694ccf8dfae09f3.tar.bz2 keks-meet-5eca5cc68bd533e4599035ba2694ccf8dfae09f3.tar.zst |
fix speed issues
Diffstat (limited to 'client-native-rift/src')
-rw-r--r-- | client-native-rift/src/main.rs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/client-native-rift/src/main.rs b/client-native-rift/src/main.rs index b9e38c0..0484d40 100644 --- a/client-native-rift/src/main.rs +++ b/client-native-rift/src/main.rs @@ -18,6 +18,7 @@ use log::{debug, error, info, warn}; use std::{ os::unix::prelude::MetadataExt, pin::Pin, + process::exit, sync::{ atomic::{AtomicUsize, Ordering}, Arc, @@ -55,6 +56,9 @@ pub struct Args { secret: String, #[clap(subcommand)] action: Action, + /// end after completion of the first transfer + #[clap(short, long)] + one_file: bool, } async fn run() { @@ -155,6 +159,7 @@ impl EventHandler for Handler { Arc::new(RwLock::new(None)); { let writer = writer.clone(); + let s = s.clone(); dc.on_open(box move || { let s = s.clone(); let writer = writer.clone(); @@ -167,11 +172,16 @@ impl EventHandler for Handler { } { let writer = writer.clone(); + let args = s.args.clone(); dc.on_close(box move || { let writer = writer.clone(); + let args = args.clone(); Box::pin(async move { info!("channel closed"); *writer.write().await = None; + if args.one_file { + exit(0); + } }) }) .await; @@ -334,6 +344,9 @@ impl LocalResource for FileSender { }) .await; } + + channel.set_buffered_amount_low_threshold(1 << 20).await; + channel .on_error(box move |err| Box::pin(async move { error!("channel error: {err}") })) .await; |