51 if(handler->kqueue < 0) { |
51 if(handler->kqueue < 0) { |
52 log_ereport(LOG_FAILURE, "evhandler_create: kqueue: %s", strerror(errno)); |
52 log_ereport(LOG_FAILURE, "evhandler_create: kqueue: %s", strerror(errno)); |
53 return NULL; |
53 return NULL; |
54 } |
54 } |
55 |
55 |
56 SYS_THREAD t = systhread_start( |
56 handler->thr = systhread_start( |
57 0, |
57 0, |
58 0, |
58 0, |
59 (thrstartfunc)ev_handle_events, |
59 (thrstartfunc)ev_handle_events, |
60 handler); |
60 handler); |
61 systhread_detach(t); |
|
62 } |
61 } |
63 |
62 |
64 return ev; |
63 return ev; |
|
64 } |
|
65 |
|
66 void ev_instance_wait(EventHandler *h) { |
|
67 EventHandlerLinux *ev = (EventHandlerLinux*)h; |
|
68 void *ret; |
|
69 pthread_join(ev->thr, &ret); |
65 } |
70 } |
66 |
71 |
67 static volatile int ev_close = 0; |
72 static volatile int ev_close = 0; |
68 |
73 |
69 void ev_instance_close(EventHandler *h) { |
74 void ev_instance_close(EventHandler *h) { |