/* Executes "full continuation" (everything in the stack) of a previously interrupted coroutine until the stack is empty (or another interruption long-jumps out of the loop). If the coroutine is recovering from an error, 'ud' points to the error status, which must be passed to the first continuation function (otherwise the default status is LUA_YIELD).  */
static void unroll(lua_State *L, void *ud)
/* Executes "full continuation" (everything in the stack) of a previously interrupted coroutine until the stack is empty (or another interruption long-jumps out of the loop). If the coroutine is recovering from an error, 'ud' points to the error status, which must be passed to the first continuation function (otherwise the default status is LUA_YIELD).  */
static void unroll(lua_State *L, void *ud)
{
    if (!isLua(L->ci))
      finishCcall(L, LUA_YIELD);
    else {
      luaV_finishOp(L);
      luaV_execute(L);
    }
  }
}