src/server/daemon/event_linux.c

changeset 533
2d6099ba2a7c
parent 531
9b15b1f72bef
child 537
ad44e72fbf50
equal deleted inserted replaced
532:d8212d4f24f2 533:2d6099ba2a7c
116 ebufpos += r; 116 ebufpos += r;
117 } 117 }
118 if(ebufpos == sizeof(Event*)) { 118 if(ebufpos == sizeof(Event*)) {
119 intptr_t *p = (intptr_t*)b; 119 intptr_t *p = (intptr_t*)b;
120 *(&event) = (Event*)*p; 120 *(&event) = (Event*)*p;
121 /*
121 if(event->fn) { 122 if(event->fn) {
122 if(!event->fn(ev, event) && event->finish) { 123 if(!event->fn(ev, event) && event->finish) {
123 event->finish(ev, event); 124 event->finish(ev, event);
124 } 125 }
125 } 126 }*/
126 } 127 } else {
127 } else if(event->fn) { 128 continue; // should not happen
129 }
130 }
131
132 if(event->fn) {
128 int saved_ev = event->events; 133 int saved_ev = event->events;
129 if(!event->fn(ev, event)) { 134 if(!event->fn(ev, event)) {
130 // event fn returned 0 -> remove event from epoll 135 // event fn returned 0 -> remove event from epoll
131 if(epoll_ctl(ep, EPOLL_CTL_DEL, event->object, NULL)) { 136 if(epoll_ctl(ep, EPOLL_CTL_DEL, event->object, NULL)) {
132 event->error = 1; 137 event->error = 1;

mercurial