From 2a96c19069f4d21fca70d3e909730d9e4f4a73c9 Mon Sep 17 00:00:00 2001 From: unspeaker Date: Fri, 5 Jul 2024 21:28:06 +0300 Subject: [PATCH] deprioritize rendering with try_lock --- src/core.rs | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/core.rs b/src/core.rs index 5fc218a7..bb659486 100644 --- a/src/core.rs +++ b/src/core.rs @@ -114,13 +114,16 @@ pub fn main_thread ( let sleep = Duration::from_millis(16); Ok(spawn(move || loop { - terminal.draw(|frame|{ - let area = frame.size(); - let buffer = frame.buffer_mut(); - device.read().unwrap() - .render(buffer, area) - .expect("Failed to render content"); - }).expect("Failed to render frame"); + if let Ok(device) = device.try_read() { + terminal.draw(|frame|{ + let area = frame.size(); + let buffer = frame.buffer_mut(); + device + .render(buffer, area) + .expect("Failed to render content"); + }) + .expect("Failed to render frame"); + } if exited.fetch_and(true, Ordering::Relaxed) { break