[project @ 2003-10-01 10:36:49 by wolfgang]
[ghc-hetmet.git] / ghc / rts / OSThreads.h
index 6f14d42..571c90e 100644 (file)
@@ -9,7 +9,7 @@
  * --------------------------------------------------------------------------*/
 #ifndef __OSTHREADS_H__
 #define __OSTHREADS_H__
-#if defined(RTS_SUPPORTS_THREADS) /*to the end */
+#if defined(RTS_SUPPORTS_THREADS) /* to the end */
 
 # if defined(HAVE_PTHREAD_H) && !defined(WANT_NATIVE_WIN32_THREADS)
 #  include <pthread.h>
@@ -20,8 +20,13 @@ typedef pthread_t       OSThreadId;
 #define INIT_MUTEX_VAR      PTHREAD_MUTEX_INITIALIZER
 #define INIT_COND_VAR       PTHREAD_COND_INITIALIZER
 
+#ifdef LOCK_DEBUG
+#define ACQUIRE_LOCK(mutex) fprintf(stderr, "ACQUIRE_LOCK(0x%p) %s %d\n", mutex,__FILE__,__LINE__); fflush(stderr); pthread_mutex_lock(mutex)
+#define RELEASE_LOCK(mutex) fprintf(stderr, "RELEASE_LOCK(0x%p) %s %d\n", mutex,__FILE__,__LINE__); fflush(stderr); pthread_mutex_unlock(mutex)
+#else
 #define ACQUIRE_LOCK(mutex) pthread_mutex_lock(mutex)
 #define RELEASE_LOCK(mutex) pthread_mutex_unlock(mutex)
+#endif
 
 # elif defined(HAVE_WINDOWS_H)
 #include <windows.h>
@@ -33,9 +38,8 @@ typedef DWORD OSThreadId;
 #define INIT_MUTEX_VAR 0
 #define INIT_COND_VAR  0
 
-#define ACQURE_LOCK(mutex)    WaitForSingleObject(mutex,INFINITE)
-#define RELEASE_LOCK(mutex)   ReleaseMutex(handle)
-#define 
+#define ACQUIRE_LOCK(mutex)   WaitForSingleObject(mutex,INFINITE)
+#define RELEASE_LOCK(mutex)   ReleaseMutex(mutex)
 # else
 #  error "Threads not supported"
 # endif