aboutsummaryrefslogtreecommitdiff
path: root/src/app/api.rs
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-07-28 23:29:11 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-07-28 23:29:11 +0300
commite27a4ea427c9ed6248c0ee80570e94ed7b1928bd (patch)
tree0cae21a2b3939293be129aaaecb23641f68bab54 /src/app/api.rs
parente16d7d8c07a20f5ee0b4111808680bbcfd7df9ac (diff)
perf: skip rendering hidden pty updates
Diffstat (limited to 'src/app/api.rs')
-rw-r--r--src/app/api.rs11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/app/api.rs b/src/app/api.rs
index c46be676..76087e2d 100644
--- a/src/app/api.rs
+++ b/src/app/api.rs
@@ -1,4 +1,3 @@
-use std::sync::atomic::Ordering;
use std::time::{Duration, Instant};
mod agent_view;
@@ -91,7 +90,7 @@ impl App {
.state
.apply_workspace_git_statuses(&self.terminal_runtimes, results);
if changed {
- self.render_dirty.store(true, Ordering::Release);
+ self.render_dirty.request_generic();
self.render_notify.notify_one();
}
changed
@@ -194,7 +193,7 @@ impl App {
&& self.respawn_shell_for_launch_pane(*pane_id)
{
self.overlay_panes.remove(pane_id);
- self.render_dirty.store(true, Ordering::Release);
+ self.render_dirty.request_generic();
self.render_notify.notify_one();
return;
}
@@ -293,7 +292,7 @@ impl App {
self.sync_full_lifecycle_authority_detection_pauses();
if terminal_cwd_reported {
self.request_git_identity_refresh(Instant::now());
- self.render_dirty.store(true, Ordering::Release);
+ self.render_dirty.request_generic();
self.render_notify.notify_one();
}
for update in &pane_updates {
@@ -1717,7 +1716,7 @@ mod tests {
&crate::pane::PaneLaunchEnv::default(),
events,
std::sync::Arc::new(tokio::sync::Notify::new()),
- std::sync::Arc::new(std::sync::atomic::AtomicBool::new(false)),
+ std::sync::Arc::new(crate::render_signal::RenderSignal::new()),
)
.unwrap();
let deadline = std::time::Instant::now() + std::time::Duration::from_secs(2);
@@ -1809,7 +1808,7 @@ mod tests {
&crate::pane::PaneLaunchEnv::default(),
events,
std::sync::Arc::new(tokio::sync::Notify::new()),
- std::sync::Arc::new(std::sync::atomic::AtomicBool::new(false)),
+ std::sync::Arc::new(crate::render_signal::RenderSignal::new()),
)
.unwrap();
let deadline = std::time::Instant::now() + std::time::Duration::from_secs(2);