diff options
Diffstat (limited to 'xorg-server/os')
-rw-r--r-- | xorg-server/os/utils.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/xorg-server/os/utils.c b/xorg-server/os/utils.c index 29ee9ab24..2945e3e1b 100644 --- a/xorg-server/os/utils.c +++ b/xorg-server/os/utils.c @@ -248,6 +248,19 @@ OsSignal(int sig, OsSigHandlerPtr handler) #define LockFile szLockFile #endif +#if !defined(WIN32) || defined(__CYGWIN__) +#define LOCK_SERVER +#endif + +#ifndef LOCK_SERVER +void +LockServer(void) +{} + +void +UnlockServer(void) +{} +#else /* LOCK_SERVER */ static Bool StillLocking = FALSE; static char LockFile[PATH_MAX]; static Bool nolock = FALSE; @@ -263,7 +276,7 @@ LockServer(void) { #if defined(WIN32) && !defined(__CYGWIN__) char MutexName[100]; - sprintf(MutexName, "Global\\VcXsrv_Mutex_%d\n", getpid()); + sprintf(MutexName, "Global\\VcXsrv_Mutex_%d\n", atoi(display)); if (!CreateMutex(NULL,TRUE,MutexName) || GetLastError()== ERROR_ALREADY_EXISTS) { FatalError("Server is already active for display %d\n", atoi(display)); @@ -404,6 +417,7 @@ UnlockServer(void) (void) unlink(LockFile); } } +#endif /* LOCK_SERVER */ /* Force connections to close on SIGHUP from init */ @@ -530,7 +544,9 @@ UseMsg(void) #ifdef RLIMIT_STACK ErrorF("-ls int limit stack space to N Kb\n"); #endif +#ifdef LOCK_SERVER ErrorF("-nolock disable the locking mechanism\n"); +#endif ErrorF("-nolisten string don't listen on protocol\n"); ErrorF("-noreset don't reset after last client exists\n"); ErrorF("-background [none] create root window with no background\n"); @@ -692,7 +708,9 @@ ProcessCommandLine(int argc, char *argv[]) if (++i < argc) { displayfd = atoi(argv[i]); display = NULL; +#ifdef LOCK_SERVER nolock = TRUE; +#endif } else UseMsg(); @@ -772,6 +790,7 @@ ProcessCommandLine(int argc, char *argv[]) UseMsg(); } #endif +#ifdef LOCK_SERVER else if (strcmp(argv[i], "-nolock") == 0) { #if !defined(WIN32) && !defined(__CYGWIN__) if (getuid() != 0) @@ -781,6 +800,7 @@ ProcessCommandLine(int argc, char *argv[]) #endif nolock = TRUE; } +#endif else if (strcmp(argv[i], "-nolisten") == 0) { if (++i < argc) { if (_XSERVTransNoListen(argv[i])) |