src/server/daemon/event_solaris.c

changeset 30
27c7511c0e34
parent 29
e8619defde14
child 35
4417619a9bbd
--- a/src/server/daemon/event_solaris.c	Wed May 16 12:47:28 2012 +0200
+++ b/src/server/daemon/event_solaris.c	Thu May 24 12:51:52 2012 +0200
@@ -97,7 +97,7 @@
         }
         
         for(int i=0;i<nev;i++) {
-            event_t *event = events[i]->portev_user;
+            event_t *event = events[i].portev_user;
             if(event->fn) {
                 event->fn(ev, event);
             }
@@ -107,9 +107,15 @@
 
 /* returns a event handler port */
 int ev_get_port(event_handler_t *h) {
-    int cp = h->lp % h->nports;
+    int nps = h->nports;
+    if(nps == 1) {
+        return 0;
+    }
+    
+    int cp = h->lp % nps;
     atomic_inc_32(&h->lp);
-    return cp;
+    
+    return h->ports[cp];
 }
 
 int ev_pollin(event_handler_t *h, int fd, event_t *event) {

mercurial