From: Niels Provos Date: Mon, 20 May 2002 21:47:04 +0000 (+0000) Subject: updating a timeout might corrupt RB tree. Remove before changing time. X-Git-Tag: release-1.1b~145 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cc32570a080e176def54ab37bcb74df4c803babc;p=libevent updating a timeout might corrupt RB tree. Remove before changing time. svn:r24 --- 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); }