X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=main-postlicyd.c;h=fe4a8516ca180f60ad7850fc67d119dfd5920ac1;hb=1c42f5f8ed1972f13424197e9493bbed8e401576;hp=01eb9e6bf98006b590de70371cc36c1f33351645;hpb=a194fbf7f797ef3f5fea492687970f445a17c58f;p=apps%2Fpfixtools.git diff --git a/main-postlicyd.c b/main-postlicyd.c index 01eb9e6..fe4a851 100644 --- a/main-postlicyd.c +++ b/main-postlicyd.c @@ -35,8 +35,8 @@ #include -#include "common.h" #include "epoll.h" +#include "threads.h" /* administrivia {{{ */ @@ -61,12 +61,9 @@ module_exit(main_shutdown); /* }}} */ -void *job_run(void *_fd) +void *job_run(int fd, void *data) { - int fd = (intptr_t)_fd; - close(fd); - pthread_detach(pthread_self()); return NULL; } @@ -77,15 +74,14 @@ static int main_loop(void) while (!sigint) { int fd = accept(sock, NULL, 0); - pthread_t dummy; - if (fd < 0) { if (errno != EINTR || errno != EAGAIN) UNIXERR("accept"); continue; } - pthread_create(&dummy, NULL, job_run, (void *)(intptr_t)fd); + thread_launch(job_run, fd, NULL); + threads_join(); } close(sock);