From a95df2113ffa91aa5ef0aaf7a75879a65b8597ca Mon Sep 17 00:00:00 2001 From: Xie Han <63350856@qq.com> Date: Mon, 11 Aug 2025 21:56:01 +0800 Subject: [PATCH] Call 'callback' directly when deleting timers. --- src/kernel/poller.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/kernel/poller.c b/src/kernel/poller.c index 1900bd9a..b2ffa65a 100644 --- a/src/kernel/poller.c +++ b/src/kernel/poller.c @@ -1608,7 +1608,6 @@ int poller_add_timer(const struct timespec *value, void *context, void **timer, int poller_del_timer(void *timer, poller_t *poller) { struct __poller_node *node = (struct __poller_node *)timer; - int stopped = 0; pthread_mutex_lock(&poller->mutex); if (!node->removed) @@ -1622,9 +1621,6 @@ int poller_del_timer(void *timer, poller_t *poller) node->error = 0; node->state = PR_ST_DELETED; - stopped = poller->stopped; - if (!stopped) - write(poller->pipe_wr, &node, sizeof (void *)); } else { @@ -1633,7 +1629,7 @@ int poller_del_timer(void *timer, poller_t *poller) } pthread_mutex_unlock(&poller->mutex); - if (stopped) + if (node) poller->callback((struct poller_result *)node, poller->context); return -!node;