aboutsummaryrefslogtreecommitdiffstats
path: root/lib/System/Win32/Mutex.inc
diff options
context:
space:
mode:
authorJeff Cohen <jeffc@jolt-lang.org>2005-07-13 02:15:18 +0000
committerJeff Cohen <jeffc@jolt-lang.org>2005-07-13 02:15:18 +0000
commit6d2352249af8853c8307a7cf679017b32d27958c (patch)
treee3fcf758ddf54cbe8d1106dac4fefc811a57d006 /lib/System/Win32/Mutex.inc
parentc087a435109cdc943da094a21371f7d66d5b0e54 (diff)
downloadexternal_llvm-6d2352249af8853c8307a7cf679017b32d27958c.zip
external_llvm-6d2352249af8853c8307a7cf679017b32d27958c.tar.gz
external_llvm-6d2352249af8853c8307a7cf679017b32d27958c.tar.bz2
Win32 support for Mutex class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22420 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/System/Win32/Mutex.inc')
-rw-r--r--lib/System/Win32/Mutex.inc21
1 files changed, 16 insertions, 5 deletions
diff --git a/lib/System/Win32/Mutex.inc b/lib/System/Win32/Mutex.inc
index d6acb23..439ce1a 100644
--- a/lib/System/Win32/Mutex.inc
+++ b/lib/System/Win32/Mutex.inc
@@ -2,7 +2,7 @@
//
// The LLVM Compiler Infrastructure
//
-// This file was developed by Reid Spencer and is distributed under the
+// This file was developed by Jeff Cohen and is distributed under the
// University of Illinois Open Source License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
@@ -16,31 +16,42 @@
//=== is guaranteed to work on *all* Win32 variants.
//===----------------------------------------------------------------------===//
-namespace llvm
-{
+#include "Win32.h"
+#include "llvm/System/Mutex.h"
+
+namespace llvm {
using namespace sys;
-Mutex::Mutex( bool recursive)
+Mutex::Mutex(bool /*recursive*/)
{
+ data_ = new CRITICAL_SECTION;
+ InitializeCriticalSection((LPCRITICAL_SECTION)data_);
}
Mutex::~Mutex()
{
+ DeleteCriticalSection((LPCRITICAL_SECTION)data_);
+ data_ = 0;
}
bool
Mutex::acquire()
{
+ EnterCriticalSection((LPCRITICAL_SECTION)data_);
+ return true;
}
bool
Mutex::release()
{
+ LeaveCriticalSection((LPCRITICAL_SECTION)data_);
+ return true;
}
bool
-Mutex::tryacquire( void )
+Mutex::tryacquire()
{
+ return TryEnterCriticalSection((LPCRITICAL_SECTION)data_);
}
}