[project @ 2002-12-05 23:49:43 by mthomas]
[ghc-hetmet.git] / ghc / rts / ThreadLabels.c
1
2 #include "PosixSource.h"
3 #include "ThreadLabels.h"
4
5 #include <stdlib.h>
6
7 static HashTable * threadLabels = NULL;
8
9 void
10 initThreadLabelTable(void)
11 {
12   ASSERT(threadLabels == NULL);
13   threadLabels = allocHashTable();
14 }
15
16 void
17 updateThreadLabel(StgWord key, void *data)
18 {
19   removeThreadLabel(key);
20   insertHashTable(threadLabels,key,data);
21 }
22
23 void *
24 lookupThreadLabel(StgWord key)
25 {
26   return lookupHashTable(threadLabels,key);
27 }
28
29 void
30 removeThreadLabel(StgWord key)
31 {
32   void * old = NULL;
33   if ((old = lookupHashTable(threadLabels,key))) {
34     removeHashTable(threadLabels,key,old);
35     free(old);
36   }  
37 }