diff --git a/src/unix/core.c b/src/unix/core.c index 1a2eb5a3172089d1f08dd2e03c1fa0cdae9ed11b..a06dfa98ea71d6cf2729b8951430402a023d2735 100644 --- a/src/unix/core.c +++ b/src/unix/core.c @@ -436,6 +436,7 @@ int uv_run(uv_loop_t* loop, uv_run_mode mode) { #ifdef USE_FFRT if (!is_uv_loop_good_magic(loop)) { + UV_LOGF("loop %{public}zu is invalid", (size_t)loop); return 0; } #endif @@ -444,23 +445,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 +474,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.*/ @@ -481,9 +489,10 @@ int uv_run(uv_loop_t* loop, uv_run_mode mode) { * the timeout == 0) or was already updated b/c an event was received. */ uv__metrics_update_idle_time(loop); - uv__run_check(loop); + UV_LOGI("start to handle closing handle tasks, loop %{public}zu", (size_t)loop); uv__run_closing_handles(loop); + UV_LOGI("handle closing handle tasks finished, loop %{public}zu", (size_t)loop); if (mode == UV_RUN_ONCE) { /* UV_RUN_ONCE implies forward progress: at least one callback must have @@ -495,7 +504,9 @@ int uv_run(uv_loop_t* loop, uv_run_mode mode) { * the check. */ uv__update_time(loop); + UV_LOGI("start to handle timer tasks for run once, loop %{public}zu", (size_t)loop); uv__run_timers(loop); + UV_LOGI("handle timer tasks for run once finished, loop %{public}zu", (size_t)loop); } r = uv__loop_alive(loop); @@ -509,6 +520,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; }