mirror of
https://github.com/neovim/neovim.git
synced 2026-07-22 17:02:59 +00:00
Problem: `os.exit()` in `nvim -l` exits through normal teardown. But, as #39783 shows, when it is called from a libuv callback, teardown polling the main loop when inside `uv_run()` can trip the recursive poll guard and cause a crash. Fast callbacks are not safe to teardown, so it's better to schedule an exit out of a callback rather than convolutedly handle this as I tried before. Solution: Reject `os.exit()` from fast callbacks with `E5560` error.