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, |