summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon TURNEY <jon.turney@dronecode.org.uk>2010-02-18 21:03:20 -0600
committerJon TURNEY <jon.turney@dronecode.org.uk>2012-03-09 22:15:06 +0000
commit4dfc4104abba5b538ff0eaccda41da7084e21c27 (patch)
tree41279ea592edcda9af4c4fd2ca97a00144f9c608
parent233d6a0d5b85e2bd2ec68c04416b1999247481df (diff)
Disable smart scheduler on Cygwin
The smart scheduler firing SIGALRM every 20ms causes serious problems on Cygwin. Symptoms include sporadic 'accept() failed' messages in the log and deadlocks in multiwindow mode. Signed-off-by: Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
-rw-r--r--dix/dispatch.c4
-rw-r--r--os/utils.c2
2 files changed, 6 insertions, 0 deletions
diff --git a/dix/dispatch.c b/dix/dispatch.c
index 44c24337a..c8c0ed143 100644
--- a/dix/dispatch.c
+++ b/dix/dispatch.c
@@ -225,7 +225,11 @@ UpdateCurrentTimeIf(void)
#define SMART_SCHEDULE_DEFAULT_INTERVAL 20 /* ms */
#define SMART_SCHEDULE_MAX_SLICE 200 /* ms */
+#ifdef __CYGWIN__
+Bool SmartScheduleDisable = TRUE;
+#else
Bool SmartScheduleDisable = FALSE;
+#endif
long SmartScheduleSlice = SMART_SCHEDULE_DEFAULT_INTERVAL;
long SmartScheduleInterval = SMART_SCHEDULE_DEFAULT_INTERVAL;
long SmartScheduleMaxSlice = SMART_SCHEDULE_MAX_SLICE;
diff --git a/os/utils.c b/os/utils.c
index 6461ed591..5fee77d63 100644
--- a/os/utils.c
+++ b/os/utils.c
@@ -900,6 +900,7 @@ ProcessCommandLine(int argc, char *argv[])
{
if (++i < argc)
{
+ SmartScheduleDisable = FALSE;
SmartScheduleInterval = atoi(argv[i]);
SmartScheduleSlice = SmartScheduleInterval;
}
@@ -910,6 +911,7 @@ ProcessCommandLine(int argc, char *argv[])
{
if (++i < argc)
{
+ SmartScheduleDisable = FALSE;
SmartScheduleMaxSlice = atoi(argv[i]);
}
else