diff options
author | Reid Spencer <rspencer@reidspencer.com> | 2005-07-12 15:51:55 +0000 |
---|---|---|
committer | Reid Spencer <rspencer@reidspencer.com> | 2005-07-12 15:51:55 +0000 |
commit | ee448630bdf7eb6037fe2c50518d32010c433ca3 (patch) | |
tree | f8ecc527ec9e16ba1b610b08cbb35e2e05e5ebef /include/llvm/Support/ThreadSupport-PThreads.h | |
parent | b2164e5cb5086f0595e96fdbb5ffc614dea9c441 (diff) |
For PR540:
This patch completes the changes for making lli thread-safe. Here's the list
of changes:
* The Support/ThreadSupport* files were removed and replaced with the
MutexGuard.h file since all ThreadSupport* declared was a Mutex Guard.
The implementation of MutexGuard.h is now based on sys::Mutex which hides
its implementation and makes it unnecessary to have the -NoSupport.h and
-PThreads.h versions of ThreadSupport.
* All places in ExecutionEngine that previously referred to "Mutex" now
refer to sys::Mutex
* All places in ExecutionEngine that previously referred to "MutexLocker"
now refer to MutexGuard (this is frivolous but I believe the technically
correct name for such a class is "Guard" not a "Locker").
These changes passed all of llvm-test. All we need now are some test cases
that actually use multiple threads.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22404 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Support/ThreadSupport-PThreads.h')
-rw-r--r-- | include/llvm/Support/ThreadSupport-PThreads.h | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/include/llvm/Support/ThreadSupport-PThreads.h b/include/llvm/Support/ThreadSupport-PThreads.h deleted file mode 100644 index 84c6fac588..0000000000 --- a/include/llvm/Support/ThreadSupport-PThreads.h +++ /dev/null @@ -1,65 +0,0 @@ -//===-- llvm/Support/ThreadSupport-PThreads.h - PThreads 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 pthreads implementations of the generic threading -// mechanisms. Users should never #include this file directly! -// -//===----------------------------------------------------------------------===// - -// Users should never #include this file directly! As such, no include guards -// are needed. - -#ifndef LLVM_SUPPORT_THREADSUPPORT_H -#error "Code should not #include Support/ThreadSupport/PThreads.h directly!" -#endif - -#include <pthread.h> - -namespace llvm { - - /// Mutex - This class allows user code to protect variables shared between - /// threads. It implements a "recursive" mutex, to simplify user code. - /// - class Mutex { - pthread_mutex_t mutex; - Mutex(const Mutex &); // DO NOT IMPLEMENT - void operator=(const Mutex &); // DO NOT IMPLEMENT - public: - Mutex() { - // Initialize the mutex as a recursive mutex - pthread_mutexattr_t Attr; - int errorcode = pthread_mutexattr_init(&Attr); - assert(errorcode == 0); - - errorcode = pthread_mutexattr_settype(&Attr, PTHREAD_MUTEX_RECURSIVE); - assert(errorcode == 0); - - errorcode = pthread_mutex_init(&mutex, &Attr); - assert(errorcode == 0); - - errorcode = pthread_mutexattr_destroy(&Attr); - assert(errorcode == 0); - } - - ~Mutex() { - int errorcode = pthread_mutex_destroy(&mutex); - assert(errorcode == 0); - } - - void acquire () { - int errorcode = pthread_mutex_lock(&mutex); - assert(errorcode == 0); - } - - void release () { - int errorcode = pthread_mutex_unlock(&mutex); - assert(errorcode == 0); - } - }; -} // end namespace llvm |