//
// The LLVM Compiler Infrastructure
//
-// This file was developed by Reid Spencer and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// is configured into the LIBS variable.
// Note: this line of code generates a warning if pthread_mutex_init is not
// declared with weak linkage. It's safe to ignore the warning.
-static const bool pthread_enabled = static_cast<bool>(pthread_mutex_init);
+static const bool pthread_enabled = true;
// Construct a Mutex using pthread calls
Mutex::Mutex( bool recursive)
errorcode = pthread_mutexattr_settype(&attr, kind);
assert(errorcode == 0);
-#ifndef __FreeBSD__
+#if !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__NetBSD__)
// Make it a process local mutex
errorcode = pthread_mutexattr_setpshared(&attr, PTHREAD_PROCESS_PRIVATE);
#endif
{
if (pthread_enabled)
{
- pthread_mutex_t* mutex = reinterpret_cast<pthread_mutex_t*>(data_);
+ pthread_mutex_t* mutex = static_cast<pthread_mutex_t*>(data_);
assert(mutex != 0);
- int errorcode = pthread_mutex_destroy(mutex);
+ pthread_mutex_destroy(mutex);
assert(mutex != 0);
}
}
{
if (pthread_enabled)
{
- pthread_mutex_t* mutex = reinterpret_cast<pthread_mutex_t*>(data_);
+ pthread_mutex_t* mutex = static_cast<pthread_mutex_t*>(data_);
assert(mutex != 0);
int errorcode = pthread_mutex_lock(mutex);
{
if (pthread_enabled)
{
- pthread_mutex_t* mutex = reinterpret_cast<pthread_mutex_t*>(data_);
+ pthread_mutex_t* mutex = static_cast<pthread_mutex_t*>(data_);
assert(mutex != 0);
int errorcode = pthread_mutex_unlock(mutex);
{
if (pthread_enabled)
{
- pthread_mutex_t* mutex = reinterpret_cast<pthread_mutex_t*>(data_);
+ pthread_mutex_t* mutex = static_cast<pthread_mutex_t*>(data_);
assert(mutex != 0);
int errorcode = pthread_mutex_trylock(mutex);
#warning Neither LLVM_ON_UNIX nor LLVM_ON_WIN32 was set in System/Mutex.cpp
#endif
#endif
+