summaryrefslogtreecommitdiff
path: root/src/server/server.c
diff options
context:
space:
mode:
authoroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2008-07-07 08:05:07 +0000
committeroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2008-07-07 08:05:07 +0000
commitb31d83c6c7eb274144acc7c40ea4bf8424b6b1e0 (patch)
tree41223c22654dc036aaccc6e47b6f5a924707d2f5 /src/server/server.c
parentd6194d7356d15eaff0a8267779cbc5561a324bf8 (diff)
downloadopenocd+libswd-b31d83c6c7eb274144acc7c40ea4bf8424b6b1e0.tar.gz
openocd+libswd-b31d83c6c7eb274144acc7c40ea4bf8424b6b1e0.tar.bz2
openocd+libswd-b31d83c6c7eb274144acc7c40ea4bf8424b6b1e0.tar.xz
openocd+libswd-b31d83c6c7eb274144acc7c40ea4bf8424b6b1e0.zip
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
Diffstat (limited to 'src/server/server.c')
-rw-r--r--src/server/server.c22
1 files changed, 7 insertions, 15 deletions
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;
}
+
+