exit(0);
}
+static void *
+sigloop(void *data)
+{
+ struct event_base *base = event_init();
+ struct event sigterm, sigint;
+
+ signal_set(&sigint, SIGINT, sigev_exit, 0);
+ event_base_set(base, &sigint);
+ signal_set(&sigterm, SIGTERM, sigev_exit, 0);
+ event_base_set(base, &sigint);
+ signal_add(&sigint, 0);
+ signal_add(&sigterm, 0);
+ event_base_dispatch(base);
+ return (void *)base;
+}
+
int
main(int argc, char **argv)
{
uid_t uid = 0;
gid_t gid = 0;
- struct event sigint, sigterm;
struct group *gr;
struct passwd *pw;
+ pthread_t sl;
int tstart = 1;
signal(SIGPIPE,SIG_IGN);
event_init();
- signal_set(&sigint, SIGINT, sigev_exit, 0);
- signal_set(&sigterm, SIGTERM, sigev_exit, 0);
- signal_add(&sigint, 0);
- signal_add(&sigterm, 0);
+
+ pthread_create(&sl, 0, sigloop, 0);
conn_pool_init(concurrency);
io_init();