Преглед изворни кода

将喂狗放在进程主循环内,防止发邮件阻塞导致轮询线程喂狗不及时引起复位

guohui пре 1 година
родитељ
комит
199042dba5
3 измењених фајлова са 8 додато и 6 уклоњено
  1. 3 1
      pro/src/main.c
  2. 3 5
      pro/src/sys.c
  3. 2 0
      pro/src/sys.h

+ 3 - 1
pro/src/main.c

@@ -8,8 +8,10 @@ int main(int argc,char* argv[])
     sys_init();
     app_init();
 
+    sys_wdog_init();
     while(1) {
-        sleep(10);
+        sys_wdog_feed();
+        sleep(1);
     }
 
     return 0;

+ 3 - 5
pro/src/sys.c

@@ -1343,7 +1343,7 @@ static int wdog_is_en(void)
     return misc->watchdog;
 }
 
-static int wdog_init(void)
+int sys_wdog_init(void)
 {
     int r=0;
 
@@ -1385,7 +1385,7 @@ static int wdog_init(void)
 
     return r;
 }
-static int wdog_feed(void)
+int sys_wdog_feed(void)
 {
     int r=0;
 
@@ -1420,12 +1420,10 @@ static void sig_init(void)
 static void* polling_thread(void *arg)
 {
     thread_handle_t *h=(thread_handle_t*)arg;
-
-    wdog_init();
+    
     tmp_create();
     while(h->quit==0) {
         net_check();
-        wdog_feed();
         mem_check();
         send_check();
         sleep(1);

+ 2 - 0
pro/src/sys.h

@@ -36,5 +36,7 @@ int sys_kill(char *proc);
 int sys_restart_app(void);
 int sys_get_ip_ver(char *addr);
 int sys_heap_remain(void);
+int sys_wdog_init(void);
+int sys_wdog_feed(void);
 
 #endif