MCPcopy Create free account
hub / github.com/bloomberg/comdb2 / lua_resume

Function lua_resume

lua/ldo.c:425–448  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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

Callers 1

auxresumeFunction · 0.85

Calls 3

resume_errorFunction · 0.85
luaD_rawrunprotectedFunction · 0.85
luaD_seterrorobjFunction · 0.85

Tested by

no test coverage detected