@@ -60,9 +60,9 @@ module Control.Monad.IOSim.Types
6060 , ppDebug
6161 , module Control.Monad.IOSim.CommonTypes
6262 , Thrower (.. )
63- , Time (.. )
64- , addTime
65- , diffTime
63+ , SI. Time (.. )
64+ , SI. addTime
65+ , SI. diffTime
6666 -- * Internal API
6767 , Timeout (.. )
6868 , newTimeout
@@ -97,7 +97,8 @@ import Control.Monad.Class.MonadTest
9797import Control.Monad.Class.MonadThrow as MonadThrow hiding (getMaskingState )
9898import Control.Monad.Class.MonadThrow qualified as MonadThrow
9999import Control.Monad.Class.MonadTime
100- import Control.Monad.Class.MonadTime.SI
100+ import Control.Monad.Class.MonadTime.SI (DiffTime )
101+ import Control.Monad.Class.MonadTime.SI qualified as SI
101102import Control.Monad.Class.MonadTimer
102103import Control.Monad.Class.MonadTimer.SI (TimeoutState (.. ))
103104import Control.Monad.Class.MonadTimer.SI qualified as SI
@@ -167,7 +168,7 @@ data SimA s a where
167168
168169 LiftST :: StrictST. ST s a -> (a -> SimA s b ) -> SimA s b
169170
170- GetMonoTime :: (Time -> SimA s b ) -> SimA s b
171+ GetMonoTime :: (SI. Time -> SimA s b ) -> SimA s b
171172 GetWallTime :: (UTCTime -> SimA s b ) -> SimA s b
172173 SetWallTime :: UTCTime -> SimA s b -> SimA s b
173174 UnshareClock :: SimA s b -> SimA s b
@@ -479,6 +480,7 @@ instance MonadFork (IOSim s) where
479480 forkIO $ try (restore task) >>= k
480481 throwTo tid e = IOSim $ oneShot $ \ k -> ThrowTo (toException e) tid (k () )
481482 yield = IOSim $ oneShot $ \ k -> YieldSim (k () )
483+ getNumCapabilities = return 1
482484
483485instance MonadTest (IOSim s ) where
484486 exploreRaces = IOSim $ oneShot $ \ k -> ExploreRaces (k () )
@@ -672,10 +674,10 @@ instance MonadMonotonicTimeNSec (IOSim s) where
672674 getMonotonicTimeNSec = IOSim $ oneShot $ \ k -> GetMonoTime (k . conv)
673675 where
674676 -- convert time in picoseconds to nanoseconds
675- conv :: Time -> Word64
676- conv (Time d) = fromIntegral (diffTimeToPicoseconds d `div` 1_000 )
677+ conv :: SI. Time -> Word64
678+ conv (SI. Time d) = fromIntegral (diffTimeToPicoseconds d `div` 1_000 )
677679
678- instance MonadMonotonicTime (IOSim s ) where
680+ instance SI. MonadMonotonicTime (IOSim s ) where
679681 getMonotonicTime = IOSim $ oneShot $ \ k -> GetMonoTime k
680682
681683instance MonadTime (IOSim s ) where
@@ -788,14 +790,14 @@ instance MonadEventlog (IOSim s) where
788790data SimEvent
789791 -- | Used when using `IOSim`.
790792 = SimEvent {
791- seTime :: ! Time ,
793+ seTime :: ! SI. Time ,
792794 seThreadId :: ! IOSimThreadId ,
793795 seThreadLabel :: ! (Maybe ThreadLabel ),
794796 seType :: ! SimEventType
795797 }
796798 -- | Only used for /IOSimPOR/
797799 | SimPOREvent {
798- seTime :: ! Time ,
800+ seTime :: ! SI. Time ,
799801 seThreadId :: ! IOSimThreadId ,
800802 seStep :: ! Int ,
801803 seThreadLabel :: ! (Maybe ThreadLabel ),
@@ -815,7 +817,7 @@ ppSimEvent :: Int -- ^ width of the time
815817 -> SimEvent
816818 -> String
817819
818- ppSimEvent timeWidth tidWidth tLabelWidth SimEvent {seTime = Time time, seThreadId, seThreadLabel, seType} =
820+ ppSimEvent timeWidth tidWidth tLabelWidth SimEvent {seTime = SI. Time time, seThreadId, seThreadLabel, seType} =
819821 printf " %-*s - %-*s %-*s - %s"
820822 timeWidth
821823 (show time)
@@ -825,7 +827,7 @@ ppSimEvent timeWidth tidWidth tLabelWidth SimEvent {seTime = Time time, seThread
825827 (fromMaybe " " seThreadLabel)
826828 (ppSimEventType seType)
827829
828- ppSimEvent timeWidth tidWidth tLableWidth SimPOREvent {seTime = Time time, seThreadId, seStep, seThreadLabel, seType} =
830+ ppSimEvent timeWidth tidWidth tLableWidth SimPOREvent {seTime = SI. Time time, seThreadId, seStep, seThreadLabel, seType} =
829831 printf " %-*s - %-*s %-*s - %s"
830832 timeWidth
831833 (show time)
@@ -841,11 +843,11 @@ ppSimEvent _ _ _ (SimRacesFound controls) =
841843
842844-- | A result type of a simulation.
843845data SimResult a
844- = MainReturn ! Time ! (Labelled IOSimThreadId ) a ! [Labelled IOSimThreadId ]
846+ = MainReturn ! SI. Time ! (Labelled IOSimThreadId ) a ! [Labelled IOSimThreadId ]
845847 -- ^ Return value of the main thread.
846- | MainException ! Time ! (Labelled IOSimThreadId ) SomeException ! [Labelled IOSimThreadId ]
848+ | MainException ! SI. Time ! (Labelled IOSimThreadId ) SomeException ! [Labelled IOSimThreadId ]
847849 -- ^ Exception thrown by the main thread.
848- | Deadlock ! Time ! [Labelled IOSimThreadId ]
850+ | Deadlock ! SI. Time ! [Labelled IOSimThreadId ]
849851 -- ^ Deadlock discovered in the simulation. Deadlocks are discovered if
850852 -- simply the simulation cannot do any progress in a given time slot and
851853 -- there's no event which would advance the time.
@@ -863,7 +865,7 @@ ppSimResult :: Show a
863865 -> SimResult a
864866 -> String
865867ppSimResult timeWidth tidWidth thLabelWidth r = case r of
866- MainReturn (Time time) tid a tids ->
868+ MainReturn (SI. Time time) tid a tids ->
867869 printf " %-*s - %-*s %-*s - %s %s"
868870 timeWidth
869871 (show time)
@@ -873,7 +875,7 @@ ppSimResult timeWidth tidWidth thLabelWidth r = case r of
873875 (fromMaybe " " $ l_label tid)
874876 (" MainReturn " ++ show a)
875877 (" [" ++ intercalate " ," (ppLabelled ppIOSimThreadId `map` tids) ++ " ]" )
876- MainException (Time time) tid e tids ->
878+ MainException (SI. Time time) tid e tids ->
877879 printf " %-*s - %-*s %-*s - %s %s"
878880 timeWidth
879881 (show time)
@@ -883,7 +885,7 @@ ppSimResult timeWidth tidWidth thLabelWidth r = case r of
883885 (fromMaybe " " $ l_label tid)
884886 (" MainException " ++ show e)
885887 (" [" ++ intercalate " ," (ppLabelled ppIOSimThreadId `map` tids) ++ " ]" )
886- Deadlock (Time time) tids ->
888+ Deadlock (SI. Time time) tids ->
887889 printf " %-*s - %-*s %-*s - %s %s"
888890 timeWidth
889891 (show time)
@@ -920,12 +922,12 @@ ppTrace tr = Trace.ppTrace
920922 bimaximum
921923 . bimap (const (Max 0 , Max 0 , Max 0 ))
922924 (\ a -> case a of
923- SimEvent {seTime = Time time, seThreadId, seThreadLabel} ->
925+ SimEvent {seTime = SI. Time time, seThreadId, seThreadLabel} ->
924926 ( Max (length (show time))
925927 , Max (length (show (seThreadId)))
926928 , Max (length seThreadLabel)
927929 )
928- SimPOREvent {seTime = Time time, seThreadId, seThreadLabel} ->
930+ SimPOREvent {seTime = SI. Time time, seThreadId, seThreadLabel} ->
929931 ( Max (length (show time))
930932 , Max (length (show (seThreadId)))
931933 , Max (length seThreadLabel)
@@ -974,13 +976,13 @@ ppDebug = appEndo
974976 . Trace. toList
975977
976978
977- pattern SimTrace :: Time -> IOSimThreadId -> Maybe ThreadLabel -> SimEventType -> SimTrace a
979+ pattern SimTrace :: SI. Time -> IOSimThreadId -> Maybe ThreadLabel -> SimEventType -> SimTrace a
978980 -> SimTrace a
979981pattern SimTrace time threadId threadLabel traceEvent trace =
980982 Trace. Cons (SimEvent time threadId threadLabel traceEvent)
981983 trace
982984
983- pattern SimPORTrace :: Time -> IOSimThreadId -> Int -> Maybe ThreadLabel -> SimEventType -> SimTrace a
985+ pattern SimPORTrace :: SI. Time -> IOSimThreadId -> Int -> Maybe ThreadLabel -> SimEventType -> SimTrace a
984986 -> SimTrace a
985987pattern SimPORTrace time threadId step threadLabel traceEvent trace =
986988 Trace. Cons (SimPOREvent time threadId step threadLabel traceEvent)
@@ -992,15 +994,15 @@ pattern TraceRacesFound controls trace =
992994 Trace. Cons (SimRacesFound controls)
993995 trace
994996
995- pattern TraceMainReturn :: Time -> Labelled IOSimThreadId -> a -> [Labelled IOSimThreadId ]
997+ pattern TraceMainReturn :: SI. Time -> Labelled IOSimThreadId -> a -> [Labelled IOSimThreadId ]
996998 -> SimTrace a
997999pattern TraceMainReturn time tid a threads = Trace. Nil (MainReturn time tid a threads)
9981000
999- pattern TraceMainException :: Time -> Labelled IOSimThreadId -> SomeException -> [Labelled IOSimThreadId ]
1001+ pattern TraceMainException :: SI. Time -> Labelled IOSimThreadId -> SomeException -> [Labelled IOSimThreadId ]
10001002 -> SimTrace a
10011003pattern TraceMainException time tid err threads = Trace. Nil (MainException time tid err threads)
10021004
1003- pattern TraceDeadlock :: Time -> [Labelled IOSimThreadId ]
1005+ pattern TraceDeadlock :: SI. Time -> [Labelled IOSimThreadId ]
10041006 -> SimTrace a
10051007pattern TraceDeadlock time threads = Trace. Nil (Deadlock time threads)
10061008
@@ -1066,22 +1068,22 @@ data SimEventType
10661068 -- Timeouts, Timers & Delays
10671069 --
10681070
1069- | EventThreadDelay TimeoutId Time
1071+ | EventThreadDelay TimeoutId SI. Time
10701072 -- ^ thread delayed
10711073 | EventThreadDelayFired TimeoutId
10721074 -- ^ thread woken up after a delay
10731075
1074- | EventTimeoutCreated TimeoutId IOSimThreadId Time
1076+ | EventTimeoutCreated TimeoutId IOSimThreadId SI. Time
10751077 -- ^ new timeout created (via `timeout`)
10761078 | EventTimeoutFired TimeoutId
10771079 -- ^ timeout fired
10781080
1079- | EventRegisterDelayCreated TimeoutId TVarId Time
1081+ | EventRegisterDelayCreated TimeoutId TVarId SI. Time
10801082 -- ^ registered delay (via `registerDelay`)
10811083 | EventRegisterDelayFired TimeoutId
10821084 -- ^ registered delay fired
10831085
1084- | EventTimerCreated TimeoutId TVarId Time
1086+ | EventTimerCreated TimeoutId TVarId SI. Time
10851087 -- ^ a new 'Timeout' created (via `newTimeout`)
10861088 | EventTimerCancelled TimeoutId
10871089 -- ^ a 'Timeout' was cancelled (via `cancelTimeout`)
0 commit comments