src/server/daemon/event_linux.c

changeset 542
1327febf99c4
parent 541
1e1fca11aaff
child 543
3335f431a91b
equal deleted inserted replaced
541:1e1fca11aaff 542:1327febf99c4
133 133
134 if(event->fn) { 134 if(event->fn) {
135 int saved_ev = event->events; 135 int saved_ev = event->events;
136 if(!event->fn(h, event)) { 136 if(!event->fn(h, event)) {
137 // event fn returned 0 -> remove event from epoll 137 // event fn returned 0 -> remove event from epoll
138 if(epoll_ctl(ep, EPOLL_CTL_DEL, event->object, NULL)) { 138 if(saved_ev && epoll_ctl(ep, EPOLL_CTL_DEL, event->object, NULL)) {
139 event->error = 1; 139 event->error = 1;
140 log_ereport( 140 log_ereport(
141 LOG_FAILURE, 141 LOG_FAILURE,
142 "epoll_ctl failed: fd: %d error: %s", 142 "epoll_ctl failed: fd: %d error: %s",
143 event->object, 143 event->object,

mercurial