src/server/daemon/event_solaris.c

changeset 30
27c7511c0e34
parent 29
e8619defde14
child 35
4417619a9bbd
equal deleted inserted replaced
29:e8619defde14 30:27c7511c0e34
95 /* TODO: check for error */ 95 /* TODO: check for error */
96 continue; 96 continue;
97 } 97 }
98 98
99 for(int i=0;i<nev;i++) { 99 for(int i=0;i<nev;i++) {
100 event_t *event = events[i]->portev_user; 100 event_t *event = events[i].portev_user;
101 if(event->fn) { 101 if(event->fn) {
102 event->fn(ev, event); 102 event->fn(ev, event);
103 } 103 }
104 } 104 }
105 } 105 }
106 } 106 }
107 107
108 /* returns a event handler port */ 108 /* returns a event handler port */
109 int ev_get_port(event_handler_t *h) { 109 int ev_get_port(event_handler_t *h) {
110 int cp = h->lp % h->nports; 110 int nps = h->nports;
111 if(nps == 1) {
112 return 0;
113 }
114
115 int cp = h->lp % nps;
111 atomic_inc_32(&h->lp); 116 atomic_inc_32(&h->lp);
112 return cp; 117
118 return h->ports[cp];
113 } 119 }
114 120
115 int ev_pollin(event_handler_t *h, int fd, event_t *event) { 121 int ev_pollin(event_handler_t *h, int fd, event_t *event) {
116 event->object = (intptr_t)fd; 122 event->object = (intptr_t)fd;
117 return port_associate( 123 return port_associate(

mercurial