> -----Original Message----- > From: owner-libevent-us...@freehaven.net [mailto:owner-libevent- > us...@freehaven.net] On Behalf Of Nick Mathewson > Sent: Friday, October 22, 2010 10:39 AM > To: libevent-us...@freehaven.net > Subject: Re: [Libevent-users] epoll erros > ... > It won't catch attempts to manually reassign the event's ev_events > while the event is added. I sure hope nobody is doing that. Don't > touch struct event's fields by hand.
Following this comment I discovered that my code does touch ev_events by hand. Fixing my code with the patch below did not make the problem go away - if (requested && ev->ev_events != requested) { - printf("changing event %p:%p from %d to %d(%s)",easy,ev,ev->ev_events,requested,vevent_libevnet_ev2string(requested) ); + if (requested && event_get_events(ev) != requested) { + printf("changing event %p:%p from %d to %d(%s)",easy,ev,event_get_events(ev),requested,vevent_libevnet_ev2string(req uested)); event_del(ev); - ev->ev_events = requested; + event_set(ev, event_get_fd(ev), requested, event_get_callback(ev), event_get_callback_arg(ev)); if ( event_add(ev,NULL) !=0 ) { HTH *********************************************************************** To unsubscribe, send an e-mail to majord...@freehaven.net with unsubscribe libevent-users in the body.