diff options
author | Jon TURNEY <jon.turney@dronecode.org.uk> | 2010-02-18 21:03:20 -0600 |
---|---|---|
committer | Jon TURNEY <jon.turney@dronecode.org.uk> | 2012-03-09 22:15:06 +0000 |
commit | 4dfc4104abba5b538ff0eaccda41da7084e21c27 (patch) | |
tree | 41279ea592edcda9af4c4fd2ca97a00144f9c608 | |
parent | 233d6a0d5b85e2bd2ec68c04416b1999247481df (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.c | 4 | ||||
-rw-r--r-- | os/utils.c | 2 |
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 |