* Copyright (C) 2005 by Dominic Rath *
* Dominic.Rath@gmx.de *
* *
+ * Copyright (C) 2007,2008 Øyvind Harboe *
+ * oyvind.harboe@zylin.com *
+ * *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
return ERROR_OK;
}
-int remove_services()
+int remove_services(void)
{
service_t *c = services;
return ERROR_OK;
}
-extern void lockBigLock();
-extern void unlockBigLock();
+extern void openocd_sleep_prelude(void);
+extern void openocd_sleep_postlude(void);
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;
#endif
#endif
+ openocd_sleep_prelude();
+ kept_alive();
// 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)
{
}
#endif
}
- if (--lockCount==0)
- {
- unlockBigLock();
- }
return ERROR_OK;
}
}
#endif
-int server_init()
+int server_init(void)
{
#ifdef _WIN32
WORD wVersionRequested;
signal(SIGBREAK, sig_handler);
signal(SIGABRT, sig_handler);
#endif
+
return ERROR_OK;
}
-int server_quit()
+int server_quit(void)
{
remove_services();
return ERROR_COMMAND_CLOSE_CONNECTION;
}
+
+