From 8d9feff6e2896e622a1b0823c4c7e3764bd4029a Mon Sep 17 00:00:00 2001 From: YuQing <384681@qq.com> Date: Wed, 29 Oct 2025 11:18:56 +0800 Subject: [PATCH] restore function ioevent_reset --- src/ioevent_loop.c | 16 ++++++++++++++++ src/ioevent_loop.h | 2 ++ 2 files changed, 18 insertions(+) diff --git a/src/ioevent_loop.c b/src/ioevent_loop.c index 1587cff..fa1deb4 100644 --- a/src/ioevent_loop.c +++ b/src/ioevent_loop.c @@ -324,3 +324,19 @@ int ioevent_set(struct fast_task_info *task, struct nio_thread_data *pThread, fast_timer_add(&pThread->timer, &task->event.timer); return 0; } + +int ioevent_reset(struct fast_task_info *task, int new_fd, short event) +{ + if (task->event.fd == new_fd) + { + return 0; + } + + if (task->event.fd >= 0) + { + ioevent_detach(&task->thread_data->ev_puller, task->event.fd); + } + + task->event.fd = new_fd; + return ioevent_attach(&task->thread_data->ev_puller, new_fd, event, task); +} diff --git a/src/ioevent_loop.h b/src/ioevent_loop.h index a12f33d..d59da7c 100644 --- a/src/ioevent_loop.h +++ b/src/ioevent_loop.h @@ -38,6 +38,8 @@ int ioevent_set(struct fast_task_info *task, struct nio_thread_data *pThread, int sock, short event, IOEventCallback callback, const int timeout, const bool use_iouring); +int ioevent_reset(struct fast_task_info *task, int new_fd, short event); + static inline bool ioevent_is_canceled(struct fast_task_info *task) { return __sync_fetch_and_add(&task->canceled, 0) != 0;