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