added alive_sleep() function to let GDB alive packets be sent

git-svn-id: svn://svn.berlios.de/openocd/trunk@938 b42882b7-edfa-0310-969c-e2dbd0fdcd60
__archive__
oharboe 2008-08-19 12:17:31 +00:00
parent 91b6460671
commit 8d0e3395a0
2 changed files with 18 additions and 0 deletions

View 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();
}
}

View 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);