From 9bcc295e75b8873915903f1b6aab2d29ed2f7bca Mon Sep 17 00:00:00 2001 From: stolz Date: Wed, 26 Jun 2002 08:20:25 +0000 Subject: [PATCH] [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 --- ghc/rts/ThreadLabels.c | 35 +++++++++++++++++++++++++++++++++++ ghc/rts/ThreadLabels.h | 16 ++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 ghc/rts/ThreadLabels.c create mode 100644 ghc/rts/ThreadLabels.h diff --git a/ghc/rts/ThreadLabels.c b/ghc/rts/ThreadLabels.c new file mode 100644 index 0000000..fda40c3 --- /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); + } +} diff --git a/ghc/rts/ThreadLabels.h b/ghc/rts/ThreadLabels.h new file mode 100644 index 0000000..46e060c --- /dev/null +++ b/ghc/rts/ThreadLabels.h @@ -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); -- 1.7.10.4