Justin M. Keyes 34efdadb4e feat(health): report ulimit info
Problem:
Nvim shows `(libuv) kqueue(): Too many open files` on macos.
ref https://github.com/neovim/neovim/issues/40238

Solution:
Add a healthcheck for this situation.
2026-07-01 13:26:21 +02:00

21 lines
576 B
Lua

-- OS/process utils.
local M = {}
--- Counts (approximate) open file descriptors for this process. Works on Linux/macOS/BSD.
---@return integer? # Number of open fds, or nil if `/dev/fd` failed (fds exhausted, or unavailable/Windows).
function M.count_open_fds()
local n = 0
for _, _, err in vim.fs.dir('/dev/fd', { err = true }) do
-- If `/dev/fd` scan failed (e.g. EMFILE when fds exhausted), count would be misleading.
if err then
return nil
end
n = n + 1
end
-- Discount the scan's own descriptor.
return math.max(0, n - 1)
end
return M