From fc650018fbdc9a9ad5a26eeed4fcece77d5a2c73 Mon Sep 17 00:00:00 2001 From: liaoxingbin Date: Sat, 9 Aug 2025 14:55:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=9D=E6=8C=81=E5=BC=80=E6=BA=90=E4=BB=93?= =?UTF-8?q?=E5=92=8C=E5=86=85=E9=83=A8=E4=BB=A3=E7=A0=81=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: liaoxingbin --- src/threadpool.c | 1 - src/unix/loop.c | 1 + src/unix/signal.c | 5 ++++- src/uv-common.h | 14 +++++++------- 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/threadpool.c b/src/threadpool.c index 4a6d783..69f813d 100644 --- a/src/threadpool.c +++ b/src/threadpool.c @@ -453,7 +453,6 @@ static int uv__work_cancel(uv_loop_t* loop, uv_req_t* req, struct uv__work* w) { cancelled = !uv__queue_empty(&w->wq) && w->work != NULL && ffrt_executor_task_cancel(w, (ffrt_qos_t)(intptr_t)req->reserved[FFRT_QOS]); } - uv_mutex_unlock(&w->loop->wq_mutex); #endif diff --git a/src/unix/loop.c b/src/unix/loop.c index e841f88..437bc5c 100644 --- a/src/unix/loop.c +++ b/src/unix/loop.c @@ -42,6 +42,7 @@ int uv_loop_init(uv_loop_t* loop) { if (lfields == NULL) return UV_ENOMEM; loop->internal_fields = lfields; + err = uv_mutex_init(&lfields->loop_metrics.lock); if (err) goto fail_metrics_mutex_init; diff --git a/src/unix/signal.c b/src/unix/signal.c index 3fe8bc6..c633d42 100644 --- a/src/unix/signal.c +++ b/src/unix/signal.c @@ -460,6 +460,7 @@ static int uv__signal_start(uv_signal_t* handle, } + #ifdef USE_FFRT static void uv__get_process_name(char* processName, int bufferLength) { int fd = open("/proc/self/cmdline", O_RDONLY); @@ -496,7 +497,7 @@ static int isAddressValid(void* address) { struct iovec remote_iov = {.iov_base = address, .iov_len = sizeof(buffer)}; ssize_t bytes_read = process_vm_readv(getpid(), &local_iov, 1, &remote_iov, 1, 0); - if (bytes_read == - 1) { + if (bytes_read == -1) { return -1; } return 0; @@ -515,9 +516,11 @@ static void uv__signal_event(uv_loop_t* loop, bytes = 0; end = 0; + #ifdef USE_FFRT unsigned int trigger = uv__get_signal_flag(); #endif + do { r = read(loop->signal_pipefd[0], buf + bytes, sizeof(buf) - bytes); diff --git a/src/uv-common.h b/src/uv-common.h index 7319cac..a3a9d27 100644 --- a/src/uv-common.h +++ b/src/uv-common.h @@ -464,13 +464,6 @@ struct uv__loop_internal_fields_s { uint64_t uv__get_addr_tag(void* addr); -#if defined(USE_OHOS_DFX) && defined(__aarch64__) -int uv__is_multi_thread_open(void); -void uv__init_thread_id(uv_loop_t* loop); -void uv__set_thread_id(uv_loop_t* loop); -void uv__multi_thread_check_unify(const uv_loop_t* loop, const char* funcName); -#endif - #ifdef USE_FFRT #define SPLIT_CHAR_FIRST ':' #define SPLIT_CHAR_SECOND '#' @@ -478,4 +471,11 @@ void uv__multi_thread_check_unify(const uv_loop_t* loop, const char* funcName); void uv__work_submit_to_eventloop(uv_req_t* req, struct uv__work* w, int qos); int uv__copy_taskname(uv_req_t* req, const char* task_name); #endif + +#if defined(USE_OHOS_DFX) && defined(__aarch64__) +int uv__is_multi_thread_open(void); +void uv__init_thread_id(uv_loop_t* loop); +void uv__set_thread_id(uv_loop_t* loop); +void uv__multi_thread_check_unify(const uv_loop_t* loop, const char* funcName); +#endif #endif /* UV_COMMON_H_ */ -- Gitee