aboutsummaryrefslogtreecommitdiff
path: root/src/LuaRuntime.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/LuaRuntime.cpp')
-rw-r--r--src/LuaRuntime.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/LuaRuntime.cpp b/src/LuaRuntime.cpp
index eaf3df7..07ddb67 100644
--- a/src/LuaRuntime.cpp
+++ b/src/LuaRuntime.cpp
@@ -1,4 +1,5 @@
#include <QtCore>
+#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <lua.hpp>
@@ -19,6 +20,10 @@ LuaRuntime::LuaRuntime() {
init_web_api();
}
+int luv_callback(lua_State *state, int nargs, int nresults, int flags) {
+ return luv_cfpcall(state, nargs, nresults, flags | LUVF_CALLBACK_NOEXIT);
+}
+
void LuaRuntime::start_event_loop() {
if (event_loop != nullptr)
stop_event_loop();
@@ -28,6 +33,7 @@ void LuaRuntime::start_event_loop() {
// Load `uv` (luv)
luv_set_loop(state, event_loop->get_uv_loop());
+ luv_set_callback(state, &luv_callback);
luaopen_luv(state);
lua_setglobal(state, uv_global_name);
}