diff --git a/src/unix/signal.c b/src/unix/signal.c index 90c8ce2f77ae6ea9fe2f4894d7f353980c072109..3e5e303d377147f46dbc245abd864edcda5a4b1b 100644 --- a/src/unix/signal.c +++ b/src/unix/signal.c @@ -21,7 +21,9 @@ #include "uv.h" #include "internal.h" #include "uv_log.h" - +#ifdef USE_FFRT +#include "ffrt_inner.h" +#endif #include #include #include @@ -341,6 +343,11 @@ void uv__signal_loop_cleanup(uv_loop_t* loop) { } if (loop->signal_pipefd[0] != -1) { +#ifdef USE_FFRT + if (ffrt_get_cur_task() != NULL) { + uv__epoll_ctl(loop->backend_fd, EPOLL_CTL_DEL, loop->signal_pipefd[0], NULL); + } +#endif uv__close(loop->signal_pipefd[0]); loop->signal_pipefd[0] = -1; }