diff options
| author | Aram Drevekenin <aram@poor.dev> | 2022-07-28 12:09:38 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-07-28 12:09:38 +0200 |
| commit | 489439a9eb46cef576556fd29fbb732ac1c2b7d5 (patch) | |
| tree | 08d1004780bf1b395c2b451d6068b64f566b4921 /zellij-server/src/terminal_bytes.rs | |
| parent | docs(changelog): reflect keybindings in the status bar (diff) | |
| download | sl0ppij-489439a9eb46cef576556fd29fbb732ac1c2b7d5.tar.gz sl0ppij-489439a9eb46cef576556fd29fbb732ac1c2b7d5.tar.xz sl0ppij-489439a9eb46cef576556fd29fbb732ac1c2b7d5.zip | |
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
Diffstat (limited to 'zellij-server/src/terminal_bytes.rs')
| -rw-r--r-- | zellij-server/src/terminal_bytes.rs | 5 |
1 files changed, 4 insertions, 1 deletions
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 { |
