diff options
author | Tamar Christina <tamar@zhox.com> | 2019-06-16 21:54:23 +0100 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2020-07-15 16:41:01 -0400 |
commit | 90e69f779b6da755fac472337535a1321cbb7917 (patch) | |
tree | 935ccfc0e38bfae2133b926347edb51bafecdfa7 /includes | |
parent | 356dc3feae967b1c361130f1f356ef9ad6a693e4 (diff) | |
download | haskell-90e69f779b6da755fac472337535a1321cbb7917.tar.gz |
winio: Add IOPort synchronization primitive
Diffstat (limited to 'includes')
-rw-r--r-- | includes/rts/Constants.h | 6 | ||||
-rw-r--r-- | includes/rts/storage/TSO.h | 1 | ||||
-rw-r--r-- | includes/stg/MiscClosures.h | 4 |
3 files changed, 10 insertions, 1 deletions
diff --git a/includes/rts/Constants.h b/includes/rts/Constants.h index c2cad8fc80..f1ca25a6f3 100644 --- a/includes/rts/Constants.h +++ b/includes/rts/Constants.h @@ -256,7 +256,11 @@ by tryWakeupThread() */ #define ThreadMigrating 13 -/* WARNING WARNING top number is BlockedOnMVarRead 14, not 13!! */ +/* Lightweight non-deadlock checked version of MVar. Used for the why_blocked + field of a TSO. */ +#define BlockedOnIOCompletion 15 + +/* Next number is 16. */ /* * These constants are returned to the scheduler by a thread that has diff --git a/includes/rts/storage/TSO.h b/includes/rts/storage/TSO.h index 3a488d97b5..33eebffc7c 100644 --- a/includes/rts/storage/TSO.h +++ b/includes/rts/storage/TSO.h @@ -288,6 +288,7 @@ void dirty_STACK (Capability *cap, StgStack *stack); BlockedOnBlackHole MessageBlackHole * TSO->bq BlockedOnMVar the MVAR the MVAR's queue + BlockedOnIOCompletion the PortEVent the IOCP's queue BlockedOnSTM END_TSO_QUEUE STM wait queue(s) BlockedOnSTM STM_AWOKEN run queue diff --git a/includes/stg/MiscClosures.h b/includes/stg/MiscClosures.h index dc2b0715ca..5ffdd5cd7b 100644 --- a/includes/stg/MiscClosures.h +++ b/includes/stg/MiscClosures.h @@ -337,6 +337,10 @@ RTS_FUN_DECL(stg_block_stmwait); RTS_FUN_DECL(stg_block_throwto); RTS_RET(stg_block_throwto); +RTS_FUN_DECL(stg_readIOPortzh); +RTS_FUN_DECL(stg_writeIOPortzh); +RTS_FUN_DECL(stg_newIOPortzh); + /* Entry/exit points from StgStartup.cmm */ RTS_RET(stg_stop_thread); |