From: stolz Date: Wed, 26 Jun 2002 08:20:25 +0000 (+0000) Subject: [project @ 2002-06-26 08:20:25 by stolz] X-Git-Tag: Approx_11550_changesets_converted~1929 X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=9bcc295e75b8873915903f1b6aab2d29ed2f7bca [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 --- 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);