Duncan Coutts pushed to branch wip/io-manager-deadlock-detection at Glasgow Haskell Compiler / GHC Commits: ac791614 by Duncan Coutts at 2026-03-04T10:58:13+00:00 FIXUP: Make the IOManager API use CapIOManager rather than Capability We had updated the type of appendToIOBlockedQueue, but had not updated the CMM call sites. It makes one realise that sometimes C's primitive type system is useful! - - - - - 1 changed file: - rts/PrimOps.cmm Changes: ===================================== rts/PrimOps.cmm ===================================== @@ -2351,7 +2351,8 @@ stg_asyncReadzh ( W_ fd, W_ is_sock, W_ len, W_ buf ) ASSERT(StgTSO_why_blocked(CurrentTSO) == NotBlocked::I32); %release StgTSO_why_blocked(CurrentTSO) = BlockedOnRead::I32; - ccall appendToIOBlockedQueue(MyCapability() "ptr", CurrentTSO "ptr"); + ccall appendToIOBlockedQueue(Capability_iomgr(MyCapability()) "ptr", + CurrentTSO "ptr"); jump stg_block_async(); #endif } @@ -2377,7 +2378,8 @@ stg_asyncWritezh ( W_ fd, W_ is_sock, W_ len, W_ buf ) ASSERT(StgTSO_why_blocked(CurrentTSO) == NotBlocked::I32); %release StgTSO_why_blocked(CurrentTSO) = BlockedOnWrite::I32; - ccall appendToIOBlockedQueue(MyCapability() "ptr", CurrentTSO "ptr"); + ccall appendToIOBlockedQueue(Capability_iomgr(MyCapability()) "ptr", + CurrentTSO "ptr"); jump stg_block_async(); #endif } @@ -2403,7 +2405,8 @@ stg_asyncDoProczh ( W_ proc, W_ param ) ASSERT(StgTSO_why_blocked(CurrentTSO) == NotBlocked::I32); %release StgTSO_why_blocked(CurrentTSO) = BlockedOnDoProc::I32; - ccall appendToIOBlockedQueue(MyCapability() "ptr", CurrentTSO "ptr"); + ccall appendToIOBlockedQueue(Capability_iomgr(MyCapability()) "ptr", + CurrentTSO "ptr"); jump stg_block_async(); #endif } View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/ac79161475ca41f462e6b1ff66e64108... -- View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/ac79161475ca41f462e6b1ff66e64108... You're receiving this email because of your account on gitlab.haskell.org.