Free thread local storage on shutdown
[ghc-hetmet.git] / rts / posix / OSThreads.c
index 79d395f..6b6fa5c 100644 (file)
@@ -94,7 +94,7 @@ osThreadId()
 }
 
 rtsBool
-osThreadIsAlive(OSThreadId id)
+osThreadIsAlive(OSThreadId id STG_UNUSED)
 {
     // no good way to implement this on POSIX, AFAICT.  Returning true
     // is safe.
@@ -148,6 +148,15 @@ setThreadLocalVar (ThreadLocalKey *key, void *value)
     }
 }
 
+void
+freeThreadLocalKey (ThreadLocalKey *key)
+{
+    int r;
+    if ((r = pthread_key_delete(key)) != 0) {
+       barf("freeThreadLocalKey: %s", strerror(r));
+    }
+}
+
 static void *
 forkOS_createThreadWrapper ( void * entry )
 {