diff --git a/src/session.rs b/src/session.rs index e3fb4e1..0cc2f27 100644 --- a/src/session.rs +++ b/src/session.rs @@ -202,8 +202,16 @@ impl Session { } } + while let Ok(n) = pty.read(&mut output_buf).await { + if n > 0 { + self.handle_output(&output_buf[..n]).await; + output.extend_from_slice(&output_buf[0..n]); + } else { + break; + } + } + if !output.is_empty() { - self.handle_output(&output).await; let _ = tty.write_all(&output).await; }