Fix clang-cl self-host with MSVC 2013 STL std::bind implementation
[oota-llvm.git] / include / llvm / Support / Threading.h
index 75b6ddbfda200c984dbc73f572f750134c51abc5..9007c132a99a412192dd4278d26ebb3a22bad9d5 100644 (file)
@@ -7,42 +7,22 @@
 //
 //===----------------------------------------------------------------------===//
 //
-// TThis file defines llvm_start_multithreaded() and friends.
+// This file declares helper functions for running LLVM in a multi-threaded
+// environment.
 //
 //===----------------------------------------------------------------------===//
 
 #ifndef LLVM_SUPPORT_THREADING_H
 #define LLVM_SUPPORT_THREADING_H
 
-#include "llvm/Config/llvm-config.h"
-#include "llvm/Support/Compiler.h"
-#include <mutex>
-
 namespace llvm {
-
-#if LLVM_ENABLE_THREADS != 0
-  typedef std::mutex mutex;
-  typedef std::recursive_mutex recursive_mutex;
-#else
-  class null_mutex {
-  public:
-    void lock() { }
-    void unlock() { }
-    bool try_lock() { return true; }
-  };
-  typedef null_mutex mutex;
-  typedef null_mutex recursive_mutex;
-#endif
-
-  /// llvm_get_global_lock() - returns the llvm global lock object.
-  llvm::recursive_mutex &llvm_get_global_lock();
-
-  /// llvm_is_multithreaded() - returns true if LLVM is compiled with support
-  /// for multiple threads, and false otherwise.
+  /// Returns true if LLVM is compiled with support for multi-threading, and
+  /// false otherwise.
   bool llvm_is_multithreaded();
 
   /// llvm_execute_on_thread - Execute the given \p UserFn on a separate
-  /// thread, passing it the provided \p UserData.
+  /// thread, passing it the provided \p UserData and waits for thread
+  /// completion.
   ///
   /// This function does not guarantee that the code will actually be executed
   /// on a separate thread or honoring the requested stack size, but tries to do