+
+
+
+/* Server runtime stuff.
+ */
+
+static int server_init(void)
+{
+ gl_loop = ev_default_loop(0);
+ return 0;
+}
+
+static void server_shutdown(void)
+{
+ array_deep_wipe(listeners, listener_delete);
+ array_deep_wipe(client_pool, client_delete);
+}
+module_init(server_init);
+module_exit(server_shutdown);
+
+
+static void refresh_cb(EV_P_ struct ev_signal *w, int event)
+{
+ log_state = "refreshing ";
+ if (!gl_config_refresh(gl_config)) {
+ ev_unloop(EV_A_ EVUNLOOP_ALL);
+ info("failed");
+ } else {
+ info("done");
+ }
+ log_state = "";
+}
+
+static void exit_cb(EV_P_ struct ev_signal *w, int event)
+{
+ ev_unloop(EV_A_ EVUNLOOP_ALL);
+}
+