int uv_run_prework(uv_run_state* state) { BOOL block; uv_update_time(state->loop); uv_process_timers(state->loop); // Call idle callbacks if nothing to do. if (state->loop->pending_reqs_tail == NULL && state->loop->endgame_handles == NULL) { uv_idle_invoke(state->loop); } uv_process_reqs(state->loop); uv_process_endgames(state->loop); if (!UV_LOOP_ALIVE(state->loop)) return FALSE; uv_prepare_invoke(state->loop); block = (state->loop->idle_handles == NULL && state->loop->pending_reqs_tail == NULL && state->loop->endgame_handles == NULL && UV_LOOP_ALIVE(state->loop)); if (block) state->timeout = uv_get_poll_timeout(state->loop); else state->timeout = 0; state->count = 0; return TRUE; }
int uv_run_once(uv_loop_t* loop) { if (pGetQueuedCompletionStatusEx) { UV_LOOP_ONCE(loop, uv_poll_ex); } else { UV_LOOP_ONCE(loop, uv_poll); } return UV_LOOP_ALIVE(loop); }
int uv_run(uv_loop_t* loop) { if (pGetQueuedCompletionStatusEx) { UV_LOOP(loop, uv_poll_ex); } else { UV_LOOP(loop, uv_poll); } assert(!UV_LOOP_ALIVE((loop))); return 0; }
int uv_run_alive(uv_run_state* state) { return UV_LOOP_ALIVE(state->loop); }