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>2017-01-16 16:04:06 +0000
commit89b304ebb60179b4d7cf9cb0ce1b6a297a5067b8 (patch)
tree881bec5de8518d55eebb2c4ae5103c19a67b6adc
parent4c32db30a3651229dbc4733438d9b67f5c71c1c3 (diff)
Disable smart scheduler by default on Cygwin
The smart scheduler firing SIGALRM every 20ms causes problems on Cygwin. Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk> Reviewed-by: Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
-rw-r--r--dix/dispatch.c4
-rw-r--r--os/utils.c6
2 files changed, 10 insertions, 0 deletions
diff --git a/dix/dispatch.c b/dix/dispatch.c
index 3d0fe26fd..32971bdb0 100644
--- a/dix/dispatch.c
+++ b/dix/dispatch.c
@@ -222,9 +222,13 @@ UpdateCurrentTimeIf(void)
#define SMART_SCHEDULE_MAX_SLICE 15
#ifdef HAVE_SETITIMER
+#if defined(WIN32) || defined(__CYGWIN__)
+Bool SmartScheduleSignalEnable = FALSE;
+#else
#define SMART_SCHEDULE_DEFAULT_SIGNAL_ENABLE HAVE_SETITIMER
Bool SmartScheduleSignalEnable = SMART_SCHEDULE_DEFAULT_SIGNAL_ENABLE;
#endif
+#endif
long SmartScheduleSlice = SMART_SCHEDULE_DEFAULT_INTERVAL;
long SmartScheduleInterval = SMART_SCHEDULE_DEFAULT_INTERVAL;
diff --git a/os/utils.c b/os/utils.c
index 5cd15b7ea..ddcd482e1 100644
--- a/os/utils.c
+++ b/os/utils.c
@@ -1019,6 +1019,9 @@ ProcessCommandLine(int argc, char *argv[])
}
else if (strcmp(argv[i], "-schedInterval") == 0) {
if (++i < argc) {
+#if HAVE_SETITIMER
+ SmartScheduleSignalEnable = TRUE;
+#endif
SmartScheduleInterval = atoi(argv[i]);
SmartScheduleSlice = SmartScheduleInterval;
}
@@ -1027,6 +1030,9 @@ ProcessCommandLine(int argc, char *argv[])
}
else if (strcmp(argv[i], "-schedMax") == 0) {
if (++i < argc) {
+#if HAVE_SETITIMER
+ SmartScheduleSignalEnable = TRUE;
+#endif
SmartScheduleMaxSlice = atoi(argv[i]);
}
else