restore function ioevent_reset

master
YuQing 2025-10-29 11:18:56 +08:00
parent cbcd38a9af
commit 8d9feff6e2
2 changed files with 18 additions and 0 deletions

View File

@ -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); fast_timer_add(&pThread->timer, &task->event.timer);
return 0; 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);
}

View File

@ -38,6 +38,8 @@ int ioevent_set(struct fast_task_info *task, struct nio_thread_data *pThread,
int sock, short event, IOEventCallback callback, int sock, short event, IOEventCallback callback,
const int timeout, const bool use_iouring); 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) static inline bool ioevent_is_canceled(struct fast_task_info *task)
{ {
return __sync_fetch_and_add(&task->canceled, 0) != 0; return __sync_fetch_and_add(&task->canceled, 0) != 0;