diff -r 2b4574e617c0 -r 4417619a9bbd src/server/daemon/event_solaris.c --- a/src/server/daemon/event_solaris.c Thu Aug 09 11:08:49 2012 +0200 +++ b/src/server/daemon/event_solaris.c Sat Aug 18 11:39:34 2012 +0200 @@ -69,7 +69,10 @@ conf->handler = ev; conf->port = ev->ports[i]; - systhread_start(0, 0, (thrstartfunc)ev_handle_events, ev); + ev_thr_conf_t *thrconf = malloc(sizeof(ev_thr_conf_t)); + thrconf->handler = ev; + thrconf->port = ev->ports[i]; + systhread_start(0, 0, (thrstartfunc)ev_handle_events, thrconf); /* TODO: error handling */ } @@ -93,6 +96,7 @@ int ret = port_getn(port, events, 16, &nev, &timeout); if(ret == -1) { /* TODO: check for error */ + perror("port_getn"); continue; } @@ -109,7 +113,7 @@ int ev_get_port(event_handler_t *h) { int nps = h->nports; if(nps == 1) { - return 0; + return h->ports[0]; } int cp = h->lp % nps;