jobs: Integrate systemd watchdog by default
[src/app-framework-binder.git] / src / jobs.c
index d469c10..4b4472e 100644 (file)
@@ -29,6 +29,9 @@
 #include <sys/eventfd.h>
 
 #include <systemd/sd-event.h>
+#ifndef NO_JOBS_WATCHDOG
+#include <systemd/sd-daemon.h>
+#endif
 
 #include "jobs.h"
 #include "sig-monitor.h"
@@ -762,6 +765,12 @@ int jobs_start(int allowed_count, int start_count, int waiter_count, void (*star
        running = 0;
        remains = waiter_count;
 
+#ifndef NO_JOBS_WATCHDOG
+       /* set the watchdog */
+       if (sd_watchdog_enabled(0, NULL))
+               sd_event_set_watchdog(get_sd_event_locked(), 1);
+#endif
+
        /* start at least one thread */
        launched = 0;
        while ((launched + 1) < start_count) {