On Fri, Jun 13, 2008 at 10:01:33AM +0200, Ron Arts wrote:
> Hello,
>
> I get this error on libevent 1.3e on CentOS5. Upgrading to
> a higher version is not easy to push through, to say the least,
> so that's why I am asking the list first.
The error message looks like an event that's already been added to a
queue is getting added again, and that's not supposed to happen.
"queue 2" is EVLIST_INSERTED, the list of all events that have been
event_add()ed for IO events and not event_del()d.
The double insert is pretty weird, though, since event_add() is pretty
good about not adding an event that's already been added. The code
where it puts an event into the EVLIST_INSERTED queue is (in 1.3-svn):
if ((ev->ev_events & (EV_READ|EV_WRITE)) &&
!(ev->ev_flags & (EVLIST_INSERTED|EVLIST_ACTIVE))) {
event_queue_insert(base, ev, EVLIST_INSERTED);
return (evsel->add(evbase, ev));
}
so unless I can't read C this morning, it should only add the event to
the queue if it's already not-inserted and not-active.
In other words, something fishy is afoot here. Having a stack trace
and the contents of the offending struct event might help track it down.
yrs,
--
Nick
_______________________________________________
Libevent-users mailing list
[email protected]
http://monkeymail.org/mailman/listinfo/libevent-users