diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-05-25 15:36:50 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-05-25 15:36:50 +0300 |
| commit | d4a5e02e8433db156b9dabe2b81ddd1d2aca9ea6 (patch) | |
| tree | f94ebdfc2bf1e54b3d110052269c67b6ba5f6fb8 /src/terminal/runtime_registry.rs | |
| parent | a1543f3e248f8f5266322014ccd853e478b1dcd6 (diff) | |
feat: hand off ptys during updates
Diffstat (limited to 'src/terminal/runtime_registry.rs')
| -rw-r--r-- | src/terminal/runtime_registry.rs | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/terminal/runtime_registry.rs b/src/terminal/runtime_registry.rs index d1aeeae2..a909985e 100644 --- a/src/terminal/runtime_registry.rs +++ b/src/terminal/runtime_registry.rs @@ -37,10 +37,43 @@ impl TerminalRuntimeRegistry { self.runtimes.values() } + #[cfg(unix)] + pub(crate) fn iter(&self) -> impl Iterator<Item = (&TerminalId, &TerminalRuntime)> { + self.runtimes.iter() + } + + #[cfg(unix)] + pub(crate) fn set_handoff_readers_paused(&self, paused: bool) { + for runtime in self.runtimes.values() { + runtime.set_handoff_reader_paused(paused); + } + } + + #[cfg(unix)] + pub(crate) fn assume_handoff_ownership(&mut self) { + for runtime in self.runtimes.values_mut() { + runtime.assume_handoff_ownership(); + } + } + pub(crate) fn len(&self) -> usize { self.runtimes.len() } + #[cfg(unix)] + pub(crate) fn nudge_child_redraw_after_handoff(&self) { + for runtime in self.runtimes.values() { + runtime.nudge_child_redraw_after_handoff(); + } + } + + #[cfg(unix)] + pub(crate) fn drain_for_handoff( + &mut self, + ) -> impl Iterator<Item = (TerminalId, TerminalRuntime)> + '_ { + self.runtimes.drain() + } + #[cfg(test)] pub(crate) fn drain(&mut self) -> impl Iterator<Item = (TerminalId, TerminalRuntime)> + '_ { self.runtimes.drain() |
