From cc32570a080e176def54ab37bcb74df4c803babc Mon Sep 17 00:00:00 2001 From: Niels Provos Date: Mon, 20 May 2002 21:47:04 +0000 Subject: [PATCH] updating a timeout might corrupt RB tree. Remove before changing time. svn:r24 --- event.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/event.c b/event.c index 2d558ae9..4802f3aa 100644 --- a/event.c +++ b/event.c @@ -281,14 +281,15 @@ event_add(struct event *ev, struct timeval *tv) if (tv != NULL) { struct timeval now; + if (ev->ev_flags & EVLIST_TIMEOUT) + event_queue_remove(ev, EVLIST_TIMEOUT); + gettimeofday(&now, NULL); timeradd(&now, tv, &ev->ev_timeout); LOG_DBG((LOG_MISC, 55, "event_add: timeout in %d seconds, call %p", tv->tv_sec, ev->ev_callback)); - if (ev->ev_flags & EVLIST_TIMEOUT) - event_queue_remove(ev, EVLIST_TIMEOUT); event_queue_insert(ev, EVLIST_TIMEOUT); } -- 2.50.1