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.
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) {
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);