diff --git a/src/shared/mainloop-glib.c b/src/shared/mainloop-glib.c
index 7d4b057..042119b 100644
--- a/src/shared/mainloop-glib.c
+++ b/src/shared/mainloop-glib.c
void mainloop_init(void)
{
main_loop = g_main_loop_new(NULL, FALSE);
- mainloop_notify_init();
}
void mainloop_quit(void)
diff --git a/src/shared/mainloop-notify.c b/src/shared/mainloop-notify.c
index 1198951..5100a4e 100644
--- a/src/shared/mainloop-notify.c
+++ b/src/shared/mainloop-notify.c
{
int err;
- if (notify_fd <= 0)
- return -ENOTCONN;
+ if (notify_fd <= 0) {
+ if (strcmp(state, "STATUS=Starting up"))
+ return -ENOTCONN;
+
+ /* Auto init only when starting up */
+ mainloop_notify_init();
+ if (notify_fd <= 0)
+ return -ENOTCONN;
+ }
err = send(notify_fd, state, strlen(state), MSG_NOSIGNAL);
if (err < 0)
diff --git a/src/shared/mainloop.c b/src/shared/mainloop.c
index b71707c..9a2e1ee 100644
--- a/src/shared/mainloop.c
+++ b/src/shared/mainloop.c
mainloop_list[i] = NULL;
epoll_terminate = 0;
-
- mainloop_notify_init();
}
void mainloop_quit(void)