From 489439a9eb46cef576556fd29fbb732ac1c2b7d5 Mon Sep 17 00:00:00 2001 From: Aram Drevekenin Date: Thu, 28 Jul 2022 12:09:38 +0200 Subject: [PATCH] performance(pty): update last render time on non-backed-up render (#1610) * performance(pty): update last render time on non-backed-up render * performance(pty): ignore deadline if not backed up --- zellij-server/src/terminal_bytes.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/zellij-server/src/terminal_bytes.rs b/zellij-server/src/terminal_bytes.rs index 0a6c5a7b..f716491e 100644 --- a/zellij-server/src/terminal_bytes.rs +++ b/zellij-server/src/terminal_bytes.rs @@ -102,6 +102,7 @@ impl TerminalBytes { let time_to_send_render = self.async_send_to_screen(ScreenInstruction::Render).await; self.update_render_send_time(time_to_send_render); + self.last_render = Instant::now(); } // if we already have a render_deadline we keep it, otherwise we set it // to buffering_pause since the last time we rendered. @@ -144,7 +145,9 @@ impl TerminalBytes { } } async fn deadline_read(&mut self, buf: &mut [u8]) -> ReadResult { - if let Some(deadline) = self.render_deadline { + if !self.backed_up { + self.async_reader.read(buf).await.into() + } else if let Some(deadline) = self.render_deadline { let timeout = deadline.checked_duration_since(Instant::now()); if let Some(timeout) = timeout { match async_timeout(timeout, self.async_reader.read(buf)).await {