static int lyield_co(lua_State *L) { luaL_checktype(L, 1, LUA_TTHREAD); lua_rotate(L, 1, -1); return timing_yield(L); }
static int lyield(lua_State *L) { // printf("%s(%d): %d\n", __FUNCTION__, __LINE__, lua_gettop(L)); lua_pushthread(L); return timing_yield(L); }
static int lyield_co(lua_State *L) { // printf("%s(%d): %d\n", __FUNCTION__, __LINE__, lua_gettop(L)); luaL_checktype(L, 1, LUA_TTHREAD); // 检查类型, 不是协程会挂,不会增加stack lua_rotate(L, 1, -1); // 把1指向的协程放到栈顶 return timing_yield(L); }
static int lyield(lua_State *L) { lua_pushthread(L); return timing_yield(L); }