summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosé Bollo <jose.bollo@iot.bzh>2018-01-18 11:17:25 +0100
committerJosé Bollo <jose.bollo@iot.bzh>2018-01-18 11:17:25 +0100
commitc3249e6aa03ef10494a2a4a170bbed0cfc38a83e (patch)
tree8a6e3e3f99fc96023684474fdfd690412348295a
parentd05f95deefca2836b9f4904711a7fda1c52cd85b (diff)
jobs: Integrate systemd watchdog by default
Change-Id: Iaa3ce3ee9188e3ddaf6ee70964963d29df78689f Signed-off-by: José Bollo <jose.bollo@iot.bzh>
-rw-r--r--src/jobs.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/jobs.c b/src/jobs.c
index d469c101..4b4472e5 100644
--- a/src/jobs.c
+++ b/src/jobs.c
@@ -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) {