summaryrefslogtreecommitdiff
path: root/rts/include
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2022-08-06 11:51:35 -0400
committerBen Gamari <ben@smart-cactus.org>2022-08-06 11:51:35 -0400
commit6d1700b6dca6defb8768c493a1059c4215749b53 (patch)
tree80dc3968bb4073cd6f06e39a040f32a5a5360e31 /rts/include
parentaa818a9f83308d0742e8f8c91cb9878182dacce5 (diff)
downloadhaskell-6d1700b6dca6defb8768c493a1059c4215749b53.tar.gz
rts: Move thread labels into TSO
This eliminates the thread label HashTable and instead tracks this information in the TSO, allowing us to use proper StgArrBytes arrays for backing the label and greatly simplifying management of object lifetimes when we expose them to the user with the coming `threadLabel#` primop.
Diffstat (limited to 'rts/include')
-rw-r--r--rts/include/rts/storage/TSO.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/rts/include/rts/storage/TSO.h b/rts/include/rts/storage/TSO.h
index db56a8128b..93c077d36a 100644
--- a/rts/include/rts/storage/TSO.h
+++ b/rts/include/rts/storage/TSO.h
@@ -135,7 +135,8 @@ typedef struct StgTSO_ {
struct InCall_* bound;
struct Capability_* cap;
- struct StgTRecHeader_ * trec; /* STM transaction record */
+ struct StgTRecHeader_ * trec; /* STM transaction record */
+ StgArrBytes* label; /* Thread label */
/*
* A list of threads blocked on this TSO waiting to throw exceptions.