do not insert event into list when evsel->add fails

svn:r660
This commit is contained in:
Niels Provos 2008-02-25 07:34:07 +00:00
parent 5a2ece1895
commit bb914ed9af
2 changed files with 9 additions and 4 deletions

View File

@ -46,6 +46,7 @@ Changes in current version:
o detect integer types properly on platforms without stdint.h o detect integer types properly on platforms without stdint.h
o udpate documentation of event_loop and event_base_loop; from Tani Hosokawa. o udpate documentation of event_loop and event_base_loop; from Tani Hosokawa.
o simplify evbuffer by removing orig_buffer o simplify evbuffer by removing orig_buffer
o do not insert event into list when evsel->add fails
Changes in 1.4.0: Changes in 1.4.0:

12
event.c
View File

@ -735,14 +735,18 @@ event_add(struct event *ev, struct timeval *tv)
if ((ev->ev_events & (EV_READ|EV_WRITE)) && if ((ev->ev_events & (EV_READ|EV_WRITE)) &&
!(ev->ev_flags & (EVLIST_INSERTED|EVLIST_ACTIVE))) { !(ev->ev_flags & (EVLIST_INSERTED|EVLIST_ACTIVE))) {
event_queue_insert(base, ev, EVLIST_INSERTED); int res = evsel->add(evbase, ev);
if (res != -1)
event_queue_insert(base, ev, EVLIST_INSERTED);
return (evsel->add(evbase, ev)); return (res);
} else if ((ev->ev_events & EV_SIGNAL) && } else if ((ev->ev_events & EV_SIGNAL) &&
!(ev->ev_flags & EVLIST_SIGNAL)) { !(ev->ev_flags & EVLIST_SIGNAL)) {
event_queue_insert(base, ev, EVLIST_SIGNAL); int res = evsel->add(evbase, ev);
if (res != -1)
event_queue_insert(base, ev, EVLIST_SIGNAL);
return (evsel->add(evbase, ev)); return (res);
} }
return (0); return (0);