Christopher Layne wrote:
- if (!base->sig.ev_signal_added) {
- base->sig.ev_signal_added = 1;
- event_add(&base->sig.ev_signal, NULL);
+ if (!sig->ev_signal_added) {
+ sig->ev_signal_added = 1;
+ event_add(&sig->ev_signal, NULL);
}
There's a bug here (that predates your change): this code should handle
event_add() failure. (E.g., epoll_ctl() returning ENOMEM.)
Fix in same, or sweep up in a later patch? How many other places are
there where we're not currently checking the return value of
event_add()? If there are more than this, we might as well just do it
separately.
-cl
Looks like there are a number of others:
* evsignal_cb <- evsignal_add() should probably be using EV_PERSIST so
this call is unnecessary
* bufferevent_read_cb
* bufferevent_read_pressure_cb
* bufferevent_write_cb
* bufferevent_write
* evdns_add_server_port
* evdns_server_request_respond
* evhttp_add_event
* evhttp_connection_start_detectclose
* evhttp_bind_socket
Most look straightforward to fix, but I'm not sure how the callbacks
should indicate error.
There are also several unchecked event_del() calls, but I think it's
safe to assume those will fail only on logic error.
_______________________________________________
Libevent-users mailing list
Libevent-users@monkey.org
http://monkeymail.org/mailman/listinfo/libevent-users