summaryrefslogtreecommitdiff
path: root/includes
diff options
context:
space:
mode:
Diffstat (limited to 'includes')
-rw-r--r--includes/rts/storage/Closures.h14
-rw-r--r--includes/stg/MiscClosures.h2
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);