summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2014-06-16 22:39:38 +0000
committerZachary Turner <zturner@google.com>2014-06-16 22:39:38 +0000
commit9be5c8ca6bb5c91cbc23e24d8703a8e140d68397 (patch)
treef8a2ebc22725a545a708fee4e1d9c9991a1234aa /include
parent8b3a8d6343ae078a881abac4b5be067e74e5739a (diff)
downloadllvm-9be5c8ca6bb5c91cbc23e24d8703a8e140d68397.tar.gz
llvm-9be5c8ca6bb5c91cbc23e24d8703a8e140d68397.tar.bz2
llvm-9be5c8ca6bb5c91cbc23e24d8703a8e140d68397.tar.xz
Users of the llvm global mutex must now acquire it manually.
This allows the mutex to be acquired in a guarded, RAII fashion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211066 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/Support/Mutex.h4
-rw-r--r--include/llvm/Support/Threading.h13
2 files changed, 8 insertions, 9 deletions
diff --git a/include/llvm/Support/Mutex.h b/include/llvm/Support/Mutex.h
index 496a4381f3..2f3201a201 100644
--- a/include/llvm/Support/Mutex.h
+++ b/include/llvm/Support/Mutex.h
@@ -15,11 +15,13 @@
#define LLVM_SUPPORT_MUTEX_H
#include "llvm/Support/Compiler.h"
-#include "llvm/Support/Threading.h"
#include <cassert>
namespace llvm
{
+ // Forward declare.
+ bool llvm_is_multithreaded();
+
namespace sys
{
/// @brief Platform agnostic Mutex class.
diff --git a/include/llvm/Support/Threading.h b/include/llvm/Support/Threading.h
index a7e8774558..4768d86de9 100644
--- a/include/llvm/Support/Threading.h
+++ b/include/llvm/Support/Threading.h
@@ -14,7 +14,12 @@
#ifndef LLVM_SUPPORT_THREADING_H
#define LLVM_SUPPORT_THREADING_H
+#include "llvm/Support/Mutex.h"
+
namespace llvm {
+ /// llvm_get_global_lock - returns the llvm global lock object.
+ sys::Mutex& llvm_get_global_lock();
+
/// llvm_start_multithreaded - Allocate and initialize structures needed to
/// make LLVM safe for multithreading. The return value indicates whether
/// multithreaded initialization succeeded. LLVM will still be operational
@@ -33,14 +38,6 @@ namespace llvm {
/// mode or not.
bool llvm_is_multithreaded();
- /// acquire_global_lock - Acquire the global lock. This is a no-op if called
- /// before llvm_start_multithreaded().
- void llvm_acquire_global_lock();
-
- /// release_global_lock - Release the global lock. This is a no-op if called
- /// before llvm_start_multithreaded().
- void llvm_release_global_lock();
-
/// llvm_execute_on_thread - Execute the given \p UserFn on a separate
/// thread, passing it the provided \p UserData.
///