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-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

[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 :