[llvm-commits] CVS: llvm/include/Support/ThreadSupport.h.in ThreadSupport.h
Brian Gaeke
gaeke at cs.uiuc.edu
Mon Feb 23 15:32:29 PST 2004
Changes in directory llvm/include/Support:
ThreadSupport.h.in added (r1.1)
ThreadSupport.h (r1.3) removed
---
Log message:
ThreadSupport.h is now output from configure.
---
Diffs of the changes: (+40 -0)
Index: llvm/include/Support/ThreadSupport.h.in
diff -c /dev/null llvm/include/Support/ThreadSupport.h.in:1.1
*** /dev/null Mon Feb 23 15:30:41 2004
--- llvm/include/Support/ThreadSupport.h.in Mon Feb 23 15:30:29 2004
***************
*** 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
More information about the llvm-commits
mailing list