On Sun, Dec 06, 2009 at 01:36:27AM +0000, Matthew Wild wrote: > Hi all, > > I'm getting the following assertion fail when my application shuts down: > > event.c:241: event_base_free: Assertion > `((&base->timetree)->rbh_root == ((void *)0))' failed. > > Now from what I can gather in the source, it is trying to make sure > there are no timers still active?
What version are you using? This issue was fixed in November of 2007, and should be resolved in every version of Libevent 1.4.x. > If this is the case, is there a way to easily close all timers? Upgrade. In 1.4.x and later, calling event_base_free() will call event_del() on every pending event. > Otherwise, what do people usually do to shut down a libevent > application cleanly? Must I track all timers and close manually? If you can't upgrade to 1.4.x, your easiest choice is not to call event_base_free() at all on shutdown. (Yes, it's ugly, but it won't actually hurt anything.) The only other approach, if for some reason you can't require a version newer than 1.3e, is indeed to call event_del() on every pending event yourself. yrs, -- Nick *********************************************************************** To unsubscribe, send an e-mail to majord...@freehaven.net with unsubscribe libevent-users in the body.