summaryrefslogtreecommitdiff
path: root/ghc/rts/ThreadLabels.c
diff options
context:
space:
mode:
authorstolz <unknown>2002-06-26 08:20:25 +0000
committerstolz <unknown>2002-06-26 08:20:25 +0000
commit9bcc295e75b8873915903f1b6aab2d29ed2f7bca (patch)
tree17e16a0d44e59a961abb882b3400f7fb499148b3 /ghc/rts/ThreadLabels.c
parentfbbed914e114b6b55158319dca8956885f301ff5 (diff)
downloadhaskell-9bcc295e75b8873915903f1b6aab2d29ed2f7bca.tar.gz
[project @ 2002-06-26 08:20:25 by stolz]
The "Ouch"-commit: - didn't notice my local change to libraries/Makefile - forgot to register new files
Diffstat (limited to 'ghc/rts/ThreadLabels.c')
-rw-r--r--ghc/rts/ThreadLabels.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/ghc/rts/ThreadLabels.c b/ghc/rts/ThreadLabels.c
new file mode 100644
index 0000000000..fda40c3f00
--- /dev/null
+++ b/ghc/rts/ThreadLabels.c
@@ -0,0 +1,35 @@
+
+#include "PosixSource.h"
+#include "ThreadLabels.h"
+
+HashTable * threadLabels = NULL;
+
+void
+initThreadLabelTable(void)
+{
+ ASSERT(threadLabels == NULL);
+ threadLabels = allocHashTable();
+}
+
+void
+updateThreadLabel(StgWord key, void *data)
+{
+ removeThreadLabel(key);
+ insertHashTable(threadLabels,key,data);
+}
+
+void *
+lookupThreadLabel(StgWord key)
+{
+ return lookupHashTable(threadLabels,key);
+}
+
+void
+removeThreadLabel(StgWord key)
+{
+ void * old = NULL;
+ if ((old = lookupHashTable(threadLabels,key))) {
+ removeHashTable(threadLabels,key,old);
+ free(old);
+ }
+}