mirror of
https://github.com/neovim/neovim.git
synced 2026-04-14 03:26:10 +00:00
Problem: On exit, rpc_free() is called when processing main_loop.events after libuv calls close callbacks of the channel's stream. However, when there are no child processes, these libuv callbacks are called in loop_close() instead of proc_teardown(), and main_loop.events isn't processed after loop_close(). As a result, calling remote_ui_disconnect() in rpc_free() causes UILeave to depend on the presence of child processes. Solution: Always call remote_ui_disconnect() in rpc_close_event(), and remove the call in rpc_free().