From 5175367b35c6581cf2594589be06f849157823d1 Mon Sep 17 00:00:00 2001 From: TorchedSammy <38820196+TorchedSammy@users.noreply.github.com> Date: Fri, 4 Mar 2022 22:21:34 -0400 Subject: [PATCH] fix: handle errors in goro and timeout callbacks --- api.go | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/api.go b/api.go index 3675c59..15d03db 100644 --- a/api.go +++ b/api.go @@ -274,11 +274,13 @@ func hlgoro(L *lua.LState) int { // call fn go func() { - L.CallByParam(lua.P{ - Fn: fn, - NRet: 0, + if err := L.CallByParam(lua.P{ + Fn: fn, + NRet: 0, Protect: true, - }, args...) + }, args...); err != nil { + fmt.Fprintln(os.Stderr, "Error in goro function:\n\n", err) + } }() return 0 @@ -295,11 +297,13 @@ func hltimeout(L *lua.LState) int { timeout := time.Duration(ms) * time.Millisecond time.Sleep(timeout) - L.CallByParam(lua.P{ - Fn: cb, - NRet: 0, + if err := L.CallByParam(lua.P{ + Fn: cb, + NRet: 0, Protect: true, - }) + }); err != nil { + fmt.Fprintln(os.Stderr, "Error in goro function:\n\n", err) + } return 0 }