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/terminal | |
| parent | e16d7d8c07a20f5ee0b4111808680bbcfd7df9ac (diff) | |
perf: skip rendering hidden pty updates
Diffstat (limited to 'src/terminal')
| -rw-r--r-- | src/terminal/id.rs | 4 | ||||
| -rw-r--r-- | src/terminal/runtime.rs | 14 |
2 files changed, 12 insertions, 6 deletions
diff --git a/src/terminal/id.rs b/src/terminal/id.rs index 53ef6786..c7310753 100644 --- a/src/terminal/id.rs +++ b/src/terminal/id.rs @@ -20,6 +20,10 @@ impl TerminalId { let counter = NEXT_TERMINAL_ID.fetch_add(1, Ordering::Relaxed); Self(format!("term_{micros:x}{counter:x}")) } + + pub(crate) fn as_str(&self) -> &str { + &self.0 + } } impl fmt::Display for TerminalId { diff --git a/src/terminal/runtime.rs b/src/terminal/runtime.rs index f9858ce0..d4b66f06 100644 --- a/src/terminal/runtime.rs +++ b/src/terminal/runtime.rs @@ -1,4 +1,6 @@ -use std::sync::{atomic::AtomicBool, Arc}; +use std::sync::Arc; + +use crate::render_signal::RenderSignal; use bytes::Bytes; use ratatui::{layout::Rect, Frame}; @@ -64,7 +66,7 @@ impl TerminalRuntime { host_terminal_theme: crate::terminal_theme::TerminalTheme, events: mpsc::Sender<AppEvent>, render_notify: Arc<Notify>, - render_dirty: Arc<AtomicBool>, + render_dirty: Arc<RenderSignal>, ) -> std::io::Result<Self> { crate::pane::PaneRuntime::from_handoff_fd( import, @@ -88,7 +90,7 @@ impl TerminalRuntime { launch_env: &crate::pane::PaneLaunchEnv, events: mpsc::Sender<AppEvent>, render_notify: Arc<Notify>, - render_dirty: Arc<AtomicBool>, + render_dirty: Arc<RenderSignal>, ) -> std::io::Result<Self> { crate::pane::PaneRuntime::spawn( pane_id, @@ -120,7 +122,7 @@ impl TerminalRuntime { initial_history_ansi: Option<&str>, events: mpsc::Sender<AppEvent>, render_notify: Arc<Notify>, - render_dirty: Arc<AtomicBool>, + render_dirty: Arc<RenderSignal>, ) -> std::io::Result<Self> { crate::pane::PaneRuntime::spawn_with_initial_history( pane_id, @@ -153,7 +155,7 @@ impl TerminalRuntime { host_terminal_theme: crate::terminal_theme::TerminalTheme, events: mpsc::Sender<AppEvent>, render_notify: Arc<Notify>, - render_dirty: Arc<AtomicBool>, + render_dirty: Arc<RenderSignal>, ) -> std::io::Result<Self> { crate::pane::PaneRuntime::spawn_shell_command( pane_id, @@ -186,7 +188,7 @@ impl TerminalRuntime { host_terminal_theme: crate::terminal_theme::TerminalTheme, events: mpsc::Sender<AppEvent>, render_notify: Arc<Notify>, - render_dirty: Arc<AtomicBool>, + render_dirty: Arc<RenderSignal>, ) -> std::io::Result<Self> { crate::pane::PaneRuntime::spawn_argv_command( pane_id, |
