Re: [Libevent-users] infinite loop in evmap_io_active

2011-04-12 Thread Mike Cui
> I've drawn up a draft state transition diagram.  It's not pretty, but > it might help: >   http://www.wangafu.net/~nickm/volatile/event_states.png > Please let me know if I've got anything wrong; I want to include it in > the book if I can figure out how.  That URL isn't permanent. > > Did this a

Re: [Libevent-users] infinite loop in evmap_io_active

2011-04-12 Thread Nick Mathewson
On Mon, Apr 11, 2011 at 3:16 PM, Mike Cui wrote: >> "One reason that can happen >> is if you add an event, then re-assign it and re-add it without first >> deleting it.  To debug that, try enabling debug mode by calling >>    event_enable_debug_mode(); >> near the start of your program (before you

Re: [Libevent-users] infinite loop in evmap_io_active

2011-04-11 Thread Mike Cui
> "One reason that can happen > is if you add an event, then re-assign it and re-add it without first > deleting it.  To debug that, try enabling debug mode by calling >    event_enable_debug_mode(); > near the start of your program (before you construct any event_bases). > > It should detect any a

Re: [Libevent-users] infinite loop in evmap_io_active

2011-04-11 Thread Nick Mathewson
On Mon, Apr 11, 2011 at 6:34 AM, Mike Cui wrote: > I'm also seeing an infinite loop in evmap_io_active: > >        TAILQ_FOREACH(ev, &ctx->events, ev_io_next) { >                if (ev->ev_events & events) >                        event_active_nolock(ev, ev->ev_events & events, 1); >        } > >

[Libevent-users] infinite loop in evmap_io_active

2011-04-11 Thread Mike Cui
I'm also seeing an infinite loop in evmap_io_active: TAILQ_FOREACH(ev, &ctx->events, ev_io_next) { if (ev->ev_events & events) event_active_nolock(ev, ev->ev_events & events, 1); } It looks like the ev_io_next pointer points back to itself :