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.
This commit is contained in:
Christopher Faulet 2020-02-26 14:55:16 +01:00
parent 501465d94b
commit bc275a9e44

View file

@ -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);