Call 'callback' directly when deleting timers.

This commit is contained in:
Xie Han
2025-08-11 21:56:01 +08:00
parent 1ebcc00642
commit a95df2113f
+1 -5
View File
@@ -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;