Use error-checking mutexes on all platforms when DEBUG is on
[ghc-hetmet.git] / rts / posix / OSThreads.c
index 6b6fa5c..ee4958a 100644 (file)
@@ -104,10 +104,14 @@ osThreadIsAlive(OSThreadId id STG_UNUSED)
 void
 initMutex(Mutex* pMut)
 {
-#if defined(DEBUG) && defined(linux_HOST_OS)
+#if defined(DEBUG)
     pthread_mutexattr_t attr;
     pthread_mutexattr_init(&attr);
+#if defined(linux_HOST_OS)
     pthread_mutexattr_settype(&attr,PTHREAD_MUTEX_ERRORCHECK_NP);
+#else
+    pthread_mutexattr_settype(&attr,PTHREAD_MUTEX_ERRORCHECK);
+#endif
     pthread_mutex_init(pMut,&attr);
 #else
     pthread_mutex_init(pMut,NULL);
@@ -152,7 +156,7 @@ void
 freeThreadLocalKey (ThreadLocalKey *key)
 {
     int r;
-    if ((r = pthread_key_delete(key)) != 0) {
+    if ((r = pthread_key_delete(*key)) != 0) {
        barf("freeThreadLocalKey: %s", strerror(r));
     }
 }