From b31d83c6c7eb274144acc7c40ea4bf8424b6b1e0 Mon Sep 17 00:00:00 2001 From: oharboe Date: Mon, 7 Jul 2008 08:05:07 +0000 Subject: added pre/postlude fn's for when OpenOCD is sleeping. git-svn-id: svn://svn.berlios.de/openocd/trunk@765 b42882b7-edfa-0310-969c-e2dbd0fdcd60 --- src/server/server.c | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) (limited to 'src/server') diff --git a/src/server/server.c b/src/server/server.c index fb003624..2d910a1a 100644 --- a/src/server/server.c +++ b/src/server/server.c @@ -246,8 +246,8 @@ int remove_services() return ERROR_OK; } -extern void lockBigLock(); -extern void unlockBigLock(); +extern void openocd_sleep_prelude(); +extern void openocd_sleep_postlude(); int server_loop(command_context_t *command_context) { @@ -266,13 +266,6 @@ int server_loop(command_context_t *command_context) LOG_ERROR("couldn't set SIGPIPE to SIG_IGN"); #endif - // This function is reentrant(workaround for configuration problems) - static int lockCount=0; - if (lockCount++==0) - { - lockBigLock(); - } - /* do regular tasks after at most 10ms */ tv.tv_sec = 0; tv.tv_usec = 10000; @@ -316,10 +309,10 @@ int server_loop(command_context_t *command_context) #endif #endif + openocd_sleep_prelude(); // Only while we're sleeping we'll let others run - unlockBigLock(); retval = select(fd_max + 1, &read_fds, NULL, NULL, &tv); - lockBigLock(); + openocd_sleep_postlude(); if (retval == -1) { @@ -421,10 +414,6 @@ int server_loop(command_context_t *command_context) } #endif } - if (--lockCount==0) - { - unlockBigLock(); - } return ERROR_OK; } @@ -462,6 +451,7 @@ int server_init() signal(SIGBREAK, sig_handler); signal(SIGABRT, sig_handler); #endif + return ERROR_OK; } @@ -493,3 +483,5 @@ int handle_shutdown_command(struct command_context_s *cmd_ctx, char *cmd, char * return ERROR_COMMAND_CLOSE_CONNECTION; } + + -- cgit v1.2.3