improve tracing and locks
Some checks failed
/ build (push) Has been cancelled

This commit is contained in:
facile pop culture reference 2026-08-29 18:46:35 +03:00
parent 92f992e2e6
commit 8e7286e409
6 changed files with 123 additions and 47 deletions

View file

@ -162,11 +162,11 @@ impl Tui {
) -> Result<Task, std::io::Error> {
let exited = exited.clone();
let state = state.clone();
Task::new_poll(exited.clone(), poll, move |_| {
Task::new_poll(Some("tengri input"), exited.clone(), poll, move |_| {
let event = read().unwrap();
if Exit::is(&event) {
exited.store(true, Relaxed);
} else if let Err(e) = state.write().unwrap().apply(&TuiEvent(event)) {
} else if let Err(e) = state.write().apply(&TuiEvent(event)) {
panic!("{e}")
}
})
@ -268,15 +268,15 @@ impl Tui {
let Size { width, height } = backend.size().expect("get size failed");
let mut prev = Tui::new(width, height);
let mut next = Tui::new(width, height);
Ok(Task::new_sleep(exited.clone(), sleep, move |perf| {
Ok(Task::new_sleep(Some("tengri output"), exited.clone(), sleep, move |perf| {
let Size { width, height } = backend.size().expect("get size failed");
if let Ok(state) = state.try_read() {
if let Some(state) = state.try_read() {
prev.resize(&mut backend, width, height);
state.draw(&mut next).expect("draw failed"); // TODO draw error
prev.redraw(&mut backend, &mut next);
}
let timer = format!("{:>3.3}ms", perf.used.load(Relaxed));
prev.blit(&timer, 0, 0, Some(Style::default()));
//let timer = format!("{:>3.3}ms", perf.used.load(Relaxed));
//prev.blit(&timer, 0, 0, Some(Style::default()));
})?)
}
/// Draw TUI content or its error message.