From de69b419a4696f88f20dc24a182d604fb53eb63e Mon Sep 17 00:00:00 2001 From: Chip Senkbeil Date: Mon, 2 Aug 2021 20:32:44 -0500 Subject: [PATCH] Fix CPU pegging when stdin stream has closed --- src/subcommand/action.rs | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/subcommand/action.rs b/src/subcommand/action.rs index 050abd13..f81b16c1 100644 --- a/src/subcommand/action.rs +++ b/src/subcommand/action.rs @@ -84,15 +84,18 @@ fn spawn_stdin_reader() -> mpsc::Receiver { loop { let mut line = String::new(); - if stdin.read_line(&mut line).is_ok() { - if let Err(x) = tx.blocking_send(line) { - error!( - "Failed to pass along stdin to be sent to remote process: {}", - x - ); + match stdin.read_line(&mut line) { + Ok(0) | Err(_) => break, + Ok(_) => { + if let Err(x) = tx.blocking_send(line) { + error!( + "Failed to pass along stdin to be sent to remote process: {}", + x + ); + } + // std::thread::sleep(std::time::Duration::from_millis(1)); + std::thread::yield_now(); } - } else { - break; } } });