Converting terminalHasColors mutex to a global ManagedStatic to avoid the static...
authorChris Bieneman <beanz@apple.com>
Mon, 22 Sep 2014 22:39:20 +0000 (22:39 +0000)
committerChris Bieneman <beanz@apple.com>
Mon, 22 Sep 2014 22:39:20 +0000 (22:39 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@218283 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Support/Unix/Process.inc

index d2c5dbcf6ebbaa76799e52ccaae2adf15e2b06cd..566684ff5eb977a33105ce2e398231408ca364c7 100644 (file)
@@ -14,6 +14,7 @@
 #include "Unix.h"
 #include "llvm/ADT/Hashing.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/ManagedStatic.h"
 #include "llvm/Support/Mutex.h"
 #include "llvm/Support/MutexGuard.h"
 #include "llvm/Support/TimeValue.h"
@@ -263,11 +264,12 @@ extern "C" int del_curterm(struct term *termp);
 extern "C" int tigetnum(char *capname);
 #endif
 
+static ManagedStatic<sys::Mutex> TermColorMutex;
+
 static bool terminalHasColors(int fd) {
 #ifdef HAVE_TERMINFO
   // First, acquire a global lock because these C routines are thread hostile.
-  static sys::Mutex M;
-  MutexGuard G(M);
+  MutexGuard G(*TermColorMutex);
 
   int errret = 0;
   if (setupterm((char *)nullptr, fd, &errret) != 0)