diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-07-28 23:29:11 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-07-28 23:29:11 +0300 |
| commit | e27a4ea427c9ed6248c0ee80570e94ed7b1928bd (patch) | |
| tree | 0cae21a2b3939293be129aaaecb23641f68bab54 /src/app/api.rs | |
| parent | e16d7d8c07a20f5ee0b4111808680bbcfd7df9ac (diff) | |
perf: skip rendering hidden pty updates
Diffstat (limited to 'src/app/api.rs')
| -rw-r--r-- | src/app/api.rs | 11 |
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); |
