diff -r e8619defde14 -r 27c7511c0e34 src/server/daemon/event_solaris.c --- 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;iportev_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) {