summaryrefslogtreecommitdiff
path: root/rts/ThreadLabels.c
diff options
context:
space:
mode:
Diffstat (limited to 'rts/ThreadLabels.c')
-rw-r--r--rts/ThreadLabels.c17
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 */