diff options
Diffstat (limited to 'rts/ThreadLabels.c')
-rw-r--r-- | rts/ThreadLabels.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/rts/ThreadLabels.c b/rts/ThreadLabels.c index 9b9f1723ff..72cd5d3c4b 100644 --- a/rts/ThreadLabels.c +++ b/rts/ThreadLabels.c @@ -8,8 +8,10 @@ * ---------------------------------------------------------------------------*/ #include "PosixSource.h" +#include "Rts.h" #include "ThreadLabels.h" #include "RtsUtils.h" +#include "Hash.h" #include <stdlib.h> @@ -47,4 +49,19 @@ removeThreadLabel(StgWord key) stgFree(old); } } + +void +labelThread(StgPtr tso, char *label) +{ + int len; + void *buf; + + /* Caveat: Once set, you can only set the thread name to "" */ + len = strlen(label)+1; + buf = stgMallocBytes(len * sizeof(char), "Schedule.c:labelThread()"); + strncpy(buf,label,len); + /* Update will free the old memory for us */ + updateThreadLabel(((StgTSO *)tso)->id,buf); +} + #endif /* DEBUG */ |