From bc275a9e4441d8118326fe2d560cf165b168931a Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Wed, 26 Feb 2020 14:55:16 +0100 Subject: [PATCH] BUG/MINOR: lua: Init the lua wake_time value before calling a lua function The wake_time of a lua context is now always set to TICK_ETERNITY when the context is initialized and when everytime the execution of the lua stack is started. It is mandatory to not set arbitrary wake_time when an action yields. No backport needed. --- src/hlua.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/hlua.c b/src/hlua.c index dda156dda..a8f48b399 100644 --- a/src/hlua.c +++ b/src/hlua.c @@ -907,6 +907,7 @@ int hlua_ctx_init(struct hlua *lua, struct task *task, int already_safe) lua->Mref = LUA_REFNIL; lua->flags = 0; lua->gc_count = 0; + lua->wake_time = TICK_ETERNITY; LIST_INIT(&lua->com); lua->T = lua_newthread(gL.T); if (!lua->T) { @@ -1098,8 +1099,9 @@ resume_execution: HLUA_CLR_WAKERESWR(lua); HLUA_CLR_WAKEREQWR(lua); - /* Update the start time. */ + /* Update the start time and reset wake_time. */ lua->start_time = now_ms; + lua->wake_time = TICK_ETERNITY; /* Call the function. */ ret = lua_resume(lua->T, gL.T, lua->nargs);