Enable Watchdog timer
authorHwankyu Jhun <h.jhun@samsung.com>
Tue, 26 Jan 2021 01:56:26 +0000 (10:56 +0900)
committerHwankyu Jhun <h.jhun@samsung.com>
Tue, 26 Jan 2021 03:03:37 +0000 (12:03 +0900)
Change-Id: I4ea7aa7b6f115cff1e40e528b31139427cbd43d4
Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
packaging/ac.service
src/lib/amd_main.c

index 8db659f1c8e48b3dd210a89c164259989a36d085..2ecdc8a0ed8347a30fbfffa2c754bce047eeeaa5 100644 (file)
@@ -21,6 +21,7 @@ ExecStart=/usr/bin/amd
 OOMScoreAdjust=-100
 Restart=on-failure
 RestartSec=3
+WatchdogSec=13
 
 [Install]
 WantedBy=basic.target
index cc9a50a90c7972fda1ec5fb1b88ad5e4dd9f7883..dae783f2dabee4452821b74bee637f0c8fa704b8 100644 (file)
@@ -424,12 +424,27 @@ static void __finish(void)
        __unblock_sigchld();
 }
 
+static gboolean __watchdog_cb(gpointer data)
+{
+       sd_notify(0, "WATCHDOG=1");
+       _E("called sd_notify() WATCHDOG");
+       return G_SOURCE_CONTINUE;
+}
+
 EXPORT int amd_main(int argc, char *argv[])
 {
        GMainLoop *mainloop = NULL;
+       guint timer;
+
+       timer = g_timeout_add_seconds(10, __watchdog_cb, NULL);
+       if (timer == 0) {
+               _E("g_timeout_add_seconds() is failed");
+               return -1;
+       }
 
        if (__init() != 0) {
                _E("AMD Initialization failed!\n");
+               g_source_remove(timer);
                return -1;
        }
 
@@ -438,9 +453,11 @@ EXPORT int amd_main(int argc, char *argv[])
        mainloop = g_main_loop_new(NULL, FALSE);
        if (!mainloop) {
                _E("failed to create glib main loop");
+               g_source_remove(timer);
                return -1;
        }
        g_main_loop_run(mainloop);
+       g_source_remove(timer);
 
        __finish();