106 if(event->fn) { |
106 if(event->fn) { |
107 int saved_ev = event->poll; |
107 int saved_ev = event->poll; |
108 if(!event->fn(ev, event)) { |
108 if(!event->fn(ev, event)) { |
109 // event fn returned 0 -> remove event from epoll |
109 // event fn returned 0 -> remove event from epoll |
110 if(epoll_ctl(ep, EPOLL_CTL_DEL, event->object, NULL)) { |
110 if(epoll_ctl(ep, EPOLL_CTL_DEL, event->object, NULL)) { |
111 event->error = 1; |
|
112 log_ereport( |
111 log_ereport( |
113 LOG_FAILURE, |
112 LOG_FAILURE, |
114 "epoll_ctl failed: fd: %d error: %s", |
113 "epoll_ctl failed: %s", |
115 event->object, |
|
116 strerror(errno)); |
114 strerror(errno)); |
117 } |
115 } |
118 |
116 |
119 // if set, execute event->finish |
117 // if set, execute event->finish |
120 if(event->finish) { |
118 if(event->finish) { |