From 4fec03fc2f717f0cd1411f0fdf25aa71605b5832 Mon Sep 17 00:00:00 2001 From: fengzero Date: Tue, 25 Oct 2022 06:50:17 +0000 Subject: [PATCH] chore(timer): wait timer end --- src/event/event_linux.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/event/event_linux.c b/src/event/event_linux.c index db9be37e..5bae14b6 100644 --- a/src/event/event_linux.c +++ b/src/event/event_linux.c @@ -105,7 +105,10 @@ static void *event_loop(void *arg) if (!data->ctx.timer->stop) { nng_mtx_lock(data->ctx.timer->mtx); + epoll_ctl(epoll_fd, EPOLL_CTL_DEL, data->fd, NULL); ret = data->callback.timer(data->usr_data); + timerfd_settime(data->fd, 0, &data->ctx.timer->value, NULL); + epoll_ctl(epoll_fd, EPOLL_CTL_ADD, data->fd, &event); nng_mtx_unlock(data->ctx.timer->mtx); } }