aboutsummaryrefslogtreecommitdiff
path: root/src/terminal/runtime_registry.rs
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-05-25 15:36:50 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-05-25 15:36:50 +0300
commitd4a5e02e8433db156b9dabe2b81ddd1d2aca9ea6 (patch)
treef94ebdfc2bf1e54b3d110052269c67b6ba5f6fb8 /src/terminal/runtime_registry.rs
parenta1543f3e248f8f5266322014ccd853e478b1dcd6 (diff)
feat: hand off ptys during updates
Diffstat (limited to 'src/terminal/runtime_registry.rs')
-rw-r--r--src/terminal/runtime_registry.rs33
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()