diff --git a/src/unix/core.c b/src/unix/core.c index 1a2eb5a3172089d1f08dd2e03c1fa0cdae9ed11b..ba1edb8721c55210978fd964e408753c6e139da6 100644 --- a/src/unix/core.c +++ b/src/unix/core.c @@ -444,23 +444,28 @@ int uv_run(uv_loop_t* loop, uv_run_mode mode) { if (!r) uv__update_time(loop); + UV_LOGI("start to run loop %{public}zu", (size_t)loop); + while (r != 0 && loop->stop_flag == 0) { #ifdef USE_FFRT if (!is_uv_loop_good_magic(loop)) { return 0; } #endif - + UV_LOGI("start to handle timer tasks, loop %{public}zu", (size_t)loop); uv__update_time(loop); uv__run_timers(loop); + UV_LOGI("handle timer tasks finished, loop %{public}zu", (size_t)loop); can_sleep = uv__queue_empty(&loop->pending_queue) && uv__queue_empty(&loop->idle_handles); + UV_LOGI("start to handle pending&idle&prepare tasks, loop %{public}zu", (size_t)loop); uv__run_pending(loop); uv__run_idle(loop); uv__run_prepare(loop); + UV_LOGI("handle pending&idle&prepare tasks finished, loop %{public}zu", (size_t)loop); timeout = 0; if ((mode == UV_RUN_ONCE && can_sleep) || mode == UV_RUN_DEFAULT) @@ -468,7 +473,9 @@ int uv_run(uv_loop_t* loop, uv_run_mode mode) { uv__metrics_inc_loop_count(loop); + UV_LOGI("start to handle poll io tasks, loop %{public}zu", (size_t)loop); uv__io_poll(loop, timeout); + UV_LOGI("handle poll io tasks finished, loop %{public}zu", (size_t)loop); /* Process immediate callbacks (e.g. write_cb) a small fixed number of * times to avoid loop starvation.*/ @@ -509,6 +516,7 @@ int uv_run(uv_loop_t* loop, uv_run_mode mode) { if (loop->stop_flag != 0) loop->stop_flag = 0; + UV_LOGI("loop %{public}zu stopped", (size_t)loop); return r; }