aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Gaeke <gaeke@uiuc.edu>2004-02-23 21:30:29 +0000
committerBrian Gaeke <gaeke@uiuc.edu>2004-02-23 21:30:29 +0000
commita6eb7c19a14f2bdbde22c3e2a14dc190b3b97ded (patch)
tree3b87a45aad5c771a1e6090d62f469a4154bcdb6c
parent80ead3133ae3b6eb0517c3bca406574bef135a74 (diff)
ThreadSupport.h is now output from configure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11770 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/Support/ThreadSupport.h.in (renamed from include/Support/ThreadSupport.h)4
-rw-r--r--include/llvm/Support/MutexGuard.h40
-rw-r--r--include/llvm/Support/ThreadSupport.h.in40
3 files changed, 81 insertions, 3 deletions
diff --git a/include/Support/ThreadSupport.h b/include/Support/ThreadSupport.h.in
index 9689307f87..470010219f 100644
--- a/include/Support/ThreadSupport.h
+++ b/include/Support/ThreadSupport.h.in
@@ -17,9 +17,7 @@
#ifndef SUPPORT_THREADSUPPORT_H
#define SUPPORT_THREADSUPPORT_H
-// FIXME: Eventually don't #include config.h here
-#include "Config/config.h"
-#if defined(HAVE_PTHREAD_MUTEX_LOCK) && HAVE_PTHREAD_MUTEX_LOCK
+#if @HAVE_PTHREAD_MUTEX_LOCK@
#include "Support/ThreadSupport-PThreads.h"
#else
#include "Support/ThreadSupport-NoSupport.h"
diff --git a/include/llvm/Support/MutexGuard.h b/include/llvm/Support/MutexGuard.h
new file mode 100644
index 0000000000..470010219f
--- /dev/null
+++ b/include/llvm/Support/MutexGuard.h
@@ -0,0 +1,40 @@
+//===-- Support/ThreadSupport.h - Generic threading support -----*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file was developed by the LLVM research group and is distributed under
+// the University of Illinois Open Source License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file defines platform-agnostic interfaces that can be used to write
+// multi-threaded programs. Autoconf is used to chose the correct
+// implementation of these interfaces, or default to a non-thread-capable system
+// if no matching system support is available.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef SUPPORT_THREADSUPPORT_H
+#define SUPPORT_THREADSUPPORT_H
+
+#if @HAVE_PTHREAD_MUTEX_LOCK@
+#include "Support/ThreadSupport-PThreads.h"
+#else
+#include "Support/ThreadSupport-NoSupport.h"
+#endif // If no system support is available
+
+namespace llvm {
+ /// MutexLocker - Instances of this class acquire a given Lock when
+ /// constructed and hold that lock until destruction.
+ ///
+ class MutexLocker {
+ Mutex &M;
+ MutexLocker(const MutexLocker &); // DO NOT IMPLEMENT
+ void operator=(const MutexLocker &); // DO NOT IMPLEMENT
+ public:
+ MutexLocker(Mutex &m) : M(m) { M.acquire(); }
+ ~MutexLocker() { M.release(); }
+ };
+}
+
+#endif // SUPPORT_THREADSUPPORT_H
diff --git a/include/llvm/Support/ThreadSupport.h.in b/include/llvm/Support/ThreadSupport.h.in
new file mode 100644
index 0000000000..470010219f
--- /dev/null
+++ b/include/llvm/Support/ThreadSupport.h.in
@@ -0,0 +1,40 @@
+//===-- Support/ThreadSupport.h - Generic threading support -----*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file was developed by the LLVM research group and is distributed under
+// the University of Illinois Open Source License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file defines platform-agnostic interfaces that can be used to write
+// multi-threaded programs. Autoconf is used to chose the correct
+// implementation of these interfaces, or default to a non-thread-capable system
+// if no matching system support is available.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef SUPPORT_THREADSUPPORT_H
+#define SUPPORT_THREADSUPPORT_H
+
+#if @HAVE_PTHREAD_MUTEX_LOCK@
+#include "Support/ThreadSupport-PThreads.h"
+#else
+#include "Support/ThreadSupport-NoSupport.h"
+#endif // If no system support is available
+
+namespace llvm {
+ /// MutexLocker - Instances of this class acquire a given Lock when
+ /// constructed and hold that lock until destruction.
+ ///
+ class MutexLocker {
+ Mutex &M;
+ MutexLocker(const MutexLocker &); // DO NOT IMPLEMENT
+ void operator=(const MutexLocker &); // DO NOT IMPLEMENT
+ public:
+ MutexLocker(Mutex &m) : M(m) { M.acquire(); }
+ ~MutexLocker() { M.release(); }
+ };
+}
+
+#endif // SUPPORT_THREADSUPPORT_H