]> git.sur5r.net Git - openocd/commitdiff
added alive_sleep() function to let GDB alive packets be sent
authoroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Tue, 19 Aug 2008 12:17:31 +0000 (12:17 +0000)
committeroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Tue, 19 Aug 2008 12:17:31 +0000 (12:17 +0000)
git-svn-id: svn://svn.berlios.de/openocd/trunk@938 b42882b7-edfa-0310-969c-e2dbd0fdcd60

src/helper/log.c
src/helper/log.h

index ef1a6bb06c2116f1a2e06c1006450dedfedd6ad8..efe5d5bb949ff2bafc816d82fef3f90e4be03cb9 100644 (file)
@@ -385,3 +385,20 @@ void kept_alive()
        current_time=timeval_ms();
        last_time=current_time;
 }
+
+/* if we sleep for extended periods of time, we must invoke keep_alive() intermittantly */
+void alive_sleep(int ms)
+{
+       int i;
+       for (i=0; i<ms; i+=500)
+       {
+               int sleep_a_bit=ms-i;
+               if (sleep_a_bit>500)
+               {
+                       sleep_a_bit=500;
+               }
+               keep_alive();
+               usleep(sleep_a_bit*1000);
+               keep_alive();
+       }
+}
index c329fb5881d6a478cef52315a2aa9a504812c3b4..b6f166beb49a50f1972dd71b5f040cfd389c39de 100644 (file)
@@ -61,6 +61,7 @@ extern int log_init(struct command_context_s *cmd_ctx);
 extern int set_log_output(struct command_context_s *cmd_ctx, FILE *output);
 extern void keep_alive(void);
 extern void kept_alive(void);
+extern void alive_sleep(int ms);
 
 typedef void (*log_callback_fn)(void *priv, const char *file, int line,
                const char *function, const char *string);