neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

commit 57c6b61cf2d10af46eb56e439db9f7c071426865
parent 94c21c22dcf6b1afdb25a250c08bd858d481429b
Author: zeertzjq <zeertzjq@outlook.com>
Date:   Sat, 21 Feb 2026 05:50:54 +0800

fix(event-loop): don't call uv_stop() when loop isn't running (#37984)

Otherwise it will cause the next uv_run() to stop immediately.
Diffstat:
Msrc/nvim/event/loop.c | 6+++++-
1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/nvim/event/loop.c b/src/nvim/event/loop.c @@ -124,7 +124,11 @@ void loop_on_put(MultiQueue *queue, void *data) // of the queues, the event would only be processed after the poll // returns (user hits a key for example). To avoid this scenario, we call // uv_stop when a event is enqueued. - uv_stop(&loop->uv); + // Only call uv_stop() when the loop is actually running, otherwise it will + // instead make the next uv_run() stop immediately. + if (loop->recursive) { + uv_stop(&loop->uv); + } } #if !defined(EXITFREE)