summaryrefslogtreecommitdiff
path: root/ghc/includes/OSThreads.h
diff options
context:
space:
mode:
Diffstat (limited to 'ghc/includes/OSThreads.h')
-rw-r--r--ghc/includes/OSThreads.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/ghc/includes/OSThreads.h b/ghc/includes/OSThreads.h
index 40c260bc0f..90431445b7 100644
--- a/ghc/includes/OSThreads.h
+++ b/ghc/includes/OSThreads.h
@@ -90,6 +90,19 @@ typedef DWORD ThreadLocalKey;
#if USE_CRITICAL_SECTIONS
typedef CRITICAL_SECTION Mutex;
+
+#ifdef LOCK_DEBUG
+
+#define ACQUIRE_LOCK(mutex) \
+ debugBelch("ACQUIRE_LOCK(0x%p) %s %d\n", mutex,__FILE__,__LINE__); \
+ EnterCriticalSection(mutex)
+#define RELEASE_LOCK(mutex) \
+ debugBelch("RELEASE_LOCK(0x%p) %s %d\n", mutex,__FILE__,__LINE__); \
+ LeaveCriticalSection(mutex)
+#define ASSERT_LOCK_HELD(mutex) /* nothing */
+
+#else
+
#define ACQUIRE_LOCK(mutex) EnterCriticalSection(mutex)
#define RELEASE_LOCK(mutex) LeaveCriticalSection(mutex)
@@ -97,6 +110,8 @@ typedef CRITICAL_SECTION Mutex;
// the right thing.
#define ASSERT_LOCK_HELD(mutex) /* nothing */
+#endif
+
#else
typedef HANDLE Mutex;