mirror of
https://github.com/wez/wezterm.git
synced 2024-12-22 21:01:36 +03:00
mux: reduce kill/wait period for fish
This kill/wait was added to workaround fish being weird on macos. This is accidentally exponential as the pty layer already loops, so we don't need to also loop here. refs: https://github.com/wez/wezterm/issues/774
This commit is contained in:
parent
caed905626
commit
78424036f9
@ -685,25 +685,13 @@ impl LocalPane {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn bounded_kill_wait(child: &mut Box<dyn Child + 'static>) {
|
|
||||||
for attempt in 0..5 {
|
|
||||||
let _ = child.kill();
|
|
||||||
if attempt > 0 {
|
|
||||||
std::thread::sleep(std::time::Duration::from_millis(50));
|
|
||||||
}
|
|
||||||
|
|
||||||
if let Ok(Some(_)) = child.try_wait() {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Drop for LocalPane {
|
impl Drop for LocalPane {
|
||||||
fn drop(&mut self) {
|
fn drop(&mut self) {
|
||||||
// Avoid lingering zombies if we can, but don't block forever.
|
// Avoid lingering zombies if we can, but don't block forever.
|
||||||
// <https://github.com/wez/wezterm/issues/558>
|
// <https://github.com/wez/wezterm/issues/558>
|
||||||
if let ProcessState::Running { child, .. } = &mut *self.process.borrow_mut() {
|
if let ProcessState::Running { child, .. } = &mut *self.process.borrow_mut() {
|
||||||
bounded_kill_wait(child);
|
let _ = child.kill();
|
||||||
|
let _ = child.try_wait();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user