aboutsummaryrefslogtreecommitdiffstats
path: root/zellij-server/src/terminal_bytes.rs
diff options
context:
space:
mode:
authorAram Drevekenin <aram@poor.dev>2022-07-28 12:09:38 +0200
committerGitHub <noreply@github.com>2022-07-28 12:09:38 +0200
commit489439a9eb46cef576556fd29fbb732ac1c2b7d5 (patch)
tree08d1004780bf1b395c2b451d6068b64f566b4921 /zellij-server/src/terminal_bytes.rs
parentdocs(changelog): reflect keybindings in the status bar (diff)
downloadsl0ppij-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.rs5
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 {