[project @ 2002-06-26 08:20:25 by stolz]
authorstolz <unknown>
Wed, 26 Jun 2002 08:20:25 +0000 (08:20 +0000)
committerstolz <unknown>
Wed, 26 Jun 2002 08:20:25 +0000 (08:20 +0000)
The "Ouch"-commit:
 - didn't notice my local change to libraries/Makefile
 - forgot to register new files

ghc/rts/ThreadLabels.c [new file with mode: 0644]
ghc/rts/ThreadLabels.h [new file with mode: 0644]

diff --git a/ghc/rts/ThreadLabels.c b/ghc/rts/ThreadLabels.c
new file mode 100644 (file)
index 0000000..fda40c3
--- /dev/null
@@ -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);
+  }  
+}
diff --git a/ghc/rts/ThreadLabels.h b/ghc/rts/ThreadLabels.h
new file mode 100644 (file)
index 0000000..46e060c
--- /dev/null
@@ -0,0 +1,16 @@
+#include "Rts.h"
+#include "Hash.h"
+
+extern HashTable * threadLabels;
+
+void
+initThreadLabelTable(void);
+
+void
+updateThreadLabel(StgWord key, void *data);
+
+void *
+lookupThreadLabel(StgWord key);
+
+void
+removeThreadLabel(StgWord key);