diff options
Diffstat (limited to 'includes')
-rw-r--r-- | includes/rts/storage/Closures.h | 14 | ||||
-rw-r--r-- | includes/stg/MiscClosures.h | 2 |
2 files changed, 15 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 ------------------------------------------------------------------------- */ diff --git a/includes/stg/MiscClosures.h b/includes/stg/MiscClosures.h index 4cec0b961c..618d436273 100644 --- a/includes/stg/MiscClosures.h +++ b/includes/stg/MiscClosures.h @@ -63,6 +63,7 @@ RTS_RET(stg_maskAsyncExceptionszh_ret); RTS_RET(stg_stack_underflow_frame); RTS_RET(stg_restore_cccs); RTS_RET(stg_restore_cccs_eval); +RTS_RET(stg_pause_thread); // RTS_FUN(stg_interp_constr1_entry); // RTS_FUN(stg_interp_constr2_entry); @@ -130,6 +131,7 @@ RTS_ENTRY(stg_STM_AWOKEN); RTS_ENTRY(stg_MSG_TRY_WAKEUP); RTS_ENTRY(stg_MSG_THROWTO); RTS_ENTRY(stg_MSG_BLACKHOLE); +RTS_ENTRY(stg_MSG_PAUSE_THREAD); RTS_ENTRY(stg_MSG_NULL); RTS_ENTRY(stg_MVAR_TSO_QUEUE); RTS_ENTRY(stg_catch); |