aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/generators/gen_api_dispatch.lua
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2019-06-23 20:10:28 +0200
committerBjörn Linse <bjorn.linse@gmail.com>2019-06-30 13:13:08 +0200
commitd33aaa0f5f96afb1608a4a3eb2057da956a24b2b (patch)
tree914d11e9d5d4d769069a11841371d1cc8cd1a802 /src/nvim/generators/gen_api_dispatch.lua
parent7030d7daf1f40e5a3963340d1107d7b7a713df5f (diff)
downloadrneovim-d33aaa0f5f96afb1608a4a3eb2057da956a24b2b.tar.gz
rneovim-d33aaa0f5f96afb1608a4a3eb2057da956a24b2b.tar.bz2
rneovim-d33aaa0f5f96afb1608a4a3eb2057da956a24b2b.zip
libluv: use luv_set_callback to control callback execution
Disable the use of deferred API functions in a fast lua callback Correctly display error messages from a fast lua callback
Diffstat (limited to 'src/nvim/generators/gen_api_dispatch.lua')
-rw-r--r--src/nvim/generators/gen_api_dispatch.lua9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/nvim/generators/gen_api_dispatch.lua b/src/nvim/generators/gen_api_dispatch.lua
index 969c19aedb..3ebcd2d1c4 100644
--- a/src/nvim/generators/gen_api_dispatch.lua
+++ b/src/nvim/generators/gen_api_dispatch.lua
@@ -349,6 +349,7 @@ output:write([[
#include "nvim/api/private/defs.h"
#include "nvim/api/private/helpers.h"
#include "nvim/lua/converter.h"
+#include "nvim/lua/executor.h"
]])
include_headers(output, headers)
output:write('\n')
@@ -372,6 +373,14 @@ local function process_function(fn)
binding=lua_c_function_name,
api=fn.name
}
+
+ if not fn.fast then
+ write_shifted_output(output, string.format([[
+ if (!nlua_is_deferred_safe(lstate)) {
+ return luaL_error(lstate, e_luv_api_disabled, "%s");
+ }
+ ]], fn.name))
+ end
local cparams = ''
local free_code = {}
for j = #fn.parameters,1,-1 do