diff options
author | Ben Gamari <ben@smart-cactus.org> | 2019-09-07 01:48:46 -0400 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2019-09-07 04:13:18 -0400 |
commit | 95844745eda80f8fe35794c81e4ac87b9d528999 (patch) | |
tree | 3b027829a84db11a2d842447dbec0de50979fb04 /includes/rts | |
parent | b55ee979d32df938eee9c4c02c189f8be267e8a1 (diff) | |
download | haskell-wip/pause-threads.tar.gz |
Support for pausing other threadswip/pause-threads
Diffstat (limited to 'includes/rts')
-rw-r--r-- | includes/rts/storage/Closures.h | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/includes/rts/storage/Closures.h b/includes/rts/storage/Closures.h index 3e90306b65..4e66c0a492 100644 --- a/includes/rts/storage/Closures.h +++ b/includes/rts/storage/Closures.h @@ -171,6 +171,11 @@ typedef struct _StgUpdateFrame { typedef struct { StgHeader header; + struct StgMVar_ *mvar; +} StgPauseThread; + +typedef struct { + StgHeader header; StgWord exceptions_blocked; StgClosure *handler; } StgCatchFrame; @@ -279,7 +284,7 @@ typedef struct StgMVarTSOQueue_ { struct StgTSO_ *tso; } StgMVarTSOQueue; -typedef struct { +typedef struct StgMVar_ { StgHeader header; struct StgMVarTSOQueue_ *head; struct StgMVarTSOQueue_ *tail; @@ -412,6 +417,13 @@ typedef struct MessageBlackHole_ { StgClosure *bh; } MessageBlackHole; +typedef struct MessagePauseThread_ { + StgHeader header; + Message *link; + StgTSO *tso; + StgMVar *mvar; +} MessagePauseThread; + /* ---------------------------------------------------------------------------- Compact Regions ------------------------------------------------------------------------- */ |