}
}
-static void signal_setup()
+static void signals_setup(EventLoop *loop)
{
+ g_loop = loop;
+
signal(SIGTERM, signal_handler);
signal(SIGHUP, signal_handler);
}
-static void do_main()
+static void signals_reset()
{
- signal_setup();
+ signal(SIGHUP, SIG_DFL);
+ signal(SIGINT, SIG_DFL);
+
+ g_loop = nullptr;
+}
- EventLoop::RecvData recv_data(nullptr, recv_handler, AUXD::ID_CNT);
+static void do_main()
+{
+ EventLoop::RecvData recv_data(nullptr, recv_handler, AUXD::ID_CNT);
EventLoop event_loop;
- g_loop = &event_loop;
- g_loop->init(SOCKET_PATH);
+
+ signals_setup(&event_loop);
+ event_loop.init(SOCKET_PATH);
sd_notify(0, "READY=1");
- g_loop->run(recv_data, CONNECT_TIMEOUT);
+ event_loop.run(recv_data, CONNECT_TIMEOUT);
sd_notify(0, "STOPPING=1");
- g_loop->uninit();
+ event_loop.uninit();
+ signals_reset();
}