MCPcopy Create free account
hub / github.com/RomanKubiak/ctrlr / lua_resume

Function lua_resume

Source/Misc/lua/src/lua.c:5563–5586  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5561
5562
5563LUA_API int lua_resume (lua_State *L, int nargs) {
5564int status;
5565lua_lock(L);
5566if (L->status != LUA_YIELD && (L->status != 0 || L->ci != L->base_ci))
5567return resume_error(L, "cannot resume non-suspended coroutine");
5568if (L->nCcalls >= LUAI_MAXCCALLS)
5569return resume_error(L, "C stack overflow");
5570luai_userstateresume(L, nargs);
5571lua_assert(L->errfunc == 0);
5572L->baseCcalls = ++L->nCcalls;
5573status = luaD_rawrunprotected(L, resume, L->top - nargs);
5574if (status != 0) { /* error? */
5575L->status = cast_byte(status); /* mark thread as `dead' */
5576luaD_seterrorobj(L, status, L->top);
5577L->ci->top = L->top;
5578}
5579else {
5580lua_assert(L->nCcalls == L->baseCcalls);
5581status = L->status;
5582}
5583--L->nCcalls;
5584lua_unlock(L);
5585return status;
5586}
5587
5588
5589LUA_API int lua_yield (lua_State *L, int nresults) {

Callers 2

resume_implFunction · 0.85
auxresumeFunction · 0.85

Calls 3

resume_errorFunction · 0.85
luaD_rawrunprotectedFunction · 0.85
luaD_seterrorobjFunction · 0.85

Tested by

no test coverage detected