MCPcopy Create free account
hub / github.com/BZFlag-Dev/bzflag / lua_resume

Function lua_resume

other_src/lua/src/ldo.cpp:417–440  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

415
416
417LUA_API int lua_resume (lua_State *L, int nargs) {
418 int status;
419 lua_lock(L);
420 if (L->status != LUA_YIELD && (L->status != 0 || L->ci != L->base_ci))
421 return resume_error(L, "cannot resume non-suspended coroutine");
422 if (L->nCcalls >= LUAI_MAXCCALLS)
423 return resume_error(L, "C stack overflow");
424 luai_userstateresume(L, nargs);
425 lua_assert(L->errfunc == 0);
426 L->baseCcalls = ++L->nCcalls;
427 status = luaD_rawrunprotected(L, resume, L->top - nargs);
428 if (status != 0) { /* error? */
429 L->status = cast_byte(status); /* mark thread as `dead' */
430 luaD_seterrorobj(L, status, L->top);
431 L->ci->top = L->top;
432 }
433 else {
434 lua_assert(L->nCcalls == L->baseCcalls);
435 status = L->status;
436 }
437 --L->nCcalls;
438 lua_unlock(L);
439 return status;
440}
441
442
443LUA_API int lua_yield (lua_State *L, int nresults) {

Callers 1

auxresumeFunction · 0.70

Calls 3

resume_errorFunction · 0.70
luaD_rawrunprotectedFunction · 0.70
luaD_seterrorobjFunction · 0.70

Tested by

no test coverage detected