diff options
| author | Evgeni Chasnovski <evgeni.chasnovski@gmail.com> | 2025-07-29 16:00:03 +0300 |
|---|---|---|
| committer | Evgeni Chasnovski <evgeni.chasnovski@gmail.com> | 2025-08-02 15:00:41 +0300 |
| commit | 1ee18b40611487e50abbec425d74d3af7de7897d (patch) | |
| tree | fbf6c22960cb5a03cba96566b8f760e6db36e8e7 /runtime/lua/vim/_async.lua | |
| parent | 1240d29f8fcf390bcd2cb2fd6e916c629364009a (diff) | |
| download | rneovim-1ee18b40611487e50abbec425d74d3af7de7897d.tar.gz rneovim-1ee18b40611487e50abbec425d74d3af7de7897d.tar.bz2 rneovim-1ee18b40611487e50abbec425d74d3af7de7897d.zip | |
fix(pack): use 'coxpcall.lua' on non-LuaJIT
Problem: `attempt to yield across metamethod/C-call boundary` error when
trying to use `vim.pack.add()`.
Solution: use `pcall()` variant from 'coxpcall' on non-LuaJIT version of
Lua.
Diffstat (limited to 'runtime/lua/vim/_async.lua')
| -rw-r--r-- | runtime/lua/vim/_async.lua | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/runtime/lua/vim/_async.lua b/runtime/lua/vim/_async.lua index 8abe206a51..47f37b675b 100644 --- a/runtime/lua/vim/_async.lua +++ b/runtime/lua/vim/_async.lua @@ -1,6 +1,7 @@ local M = {} local max_timeout = 30000 +local copcall = package.loaded.jit and pcall or require('coxpcall').pcall --- @param thread thread --- @param on_finish fun(err: string?, ...:any) @@ -21,7 +22,7 @@ local function resume(thread, on_finish, ...) --- @cast fn -string --- @type boolean, string? - local ok, err = pcall(fn, function(...) + local ok, err = copcall(fn, function(...) resume(thread, on_finish, ...) end) |