From b360c0608556232c8ddb7ecc9cd26e68584bee76 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Mon, 17 Feb 2025 02:26:19 -0800 Subject: refactor(channel): eliminate special case in on_proc_exit() #32485 Problem: on_proc_exit() has a special-case that assumes that the UI client will never spawn more than 1 child process. Solution: If the Nvim server exits, the stream EOF will trigger `rpc_close()` in the UI client, so we don't need the special case in `on_proc_exit`. Pass `Channel.exit_status` from `rpc_close()` so that the correct exit code is reflected. --- src/nvim/event/proc.c | 5 ----- 1 file changed, 5 deletions(-) (limited to 'src/nvim/event') diff --git a/src/nvim/event/proc.c b/src/nvim/event/proc.c index e32bbbc29a..1a5e01eb9d 100644 --- a/src/nvim/event/proc.c +++ b/src/nvim/event/proc.c @@ -437,11 +437,6 @@ static void on_proc_exit(Proc *proc) Loop *loop = proc->loop; ILOG("child exited: pid=%d status=%d" PRIu64, proc->pid, proc->status); - // XXX: This assumes the TUI never spawns any other processes...? - if (ui_client_channel_id) { - exit_on_closed_chan(proc->status); - } - // Process has terminated, but there could still be data to be read from the // OS. We are still in the libuv loop, so we cannot call code that polls for // more data directly. Instead delay the reading after the libuv loop by -- cgit