src/server/daemon/event_bsd.c

changeset 133
87b405d61f64
parent 111
c93be34fde76
child 170
711d00eeed25
--- a/src/server/daemon/event_bsd.c	Tue Dec 27 14:02:28 2016 +0100
+++ b/src/server/daemon/event_bsd.c	Tue Dec 27 17:19:00 2016 +0100
@@ -103,8 +103,10 @@
         for(int i=0;i<nev;i++) {
             event_t *event = (event_t*)events[i].udata;
             if(event->fn) {
+                int ep = event->poll;
                 if(event->fn(ev, event)) {
-                    // TODO: reassociate?               
+                    // TODO: reassociate?   
+                    // TODO: check ep and event->poll
                 } else if(event->finish) {
                     event->finish(ev, event);
                 }
@@ -127,12 +129,14 @@
 }
 
 int ev_pollin(event_handler_t *h, int fd, event_t *event) {
+    event->poll = EVENT_POLLIN;
     struct kevent kev;
     EV_SET(&kev, fd, EVFILT_READ, EV_ADD, 0, 0, event);
     return kevent(ev_get_port(h), &kev, 1, NULL, 0, NULL);
 }
 
 int ev_pollout(event_handler_t *h, int fd, event_t *event) {
+    event->poll = EVENT_POLLOUT;
     struct kevent kev;
     EV_SET(&kev, fd, EVFILT_WRITE, EV_ADD, 0, 0, event);
     return kevent(ev_get_port(h), &kev, 1, NULL, 0, NULL);

mercurial