16
16
-- incomplete uni patterns in 'schedule' (when interpreting 'StmTxCommitted')
17
17
-- and 'reschedule'.
18
18
{-# OPTIONS_GHC -Wno-incomplete-uni-patterns -Wno-unused-matches #-}
19
+ {-# OPTIONS_GHC -Wno-orphans #-}
19
20
#if __GLASGOW_HASKELL__ >= 908
20
21
-- We use partial functions from `Data.List`.
21
22
{-# OPTIONS_GHC -Wno-x-partial #-}
@@ -53,16 +54,16 @@ import Prelude hiding (read)
53
54
54
55
import Data.Dynamic
55
56
import Data.Foldable (foldlM , traverse_ )
57
+ import Data.HashPSQ (HashPSQ )
58
+ import Data.HashPSQ qualified as PSQ
59
+ import Data.IntPSQ (IntPSQ )
60
+ import Data.IntPSQ qualified as IPSQ
56
61
import Data.List qualified as List
57
62
import Data.List.Trace qualified as Trace
58
63
import Data.Map.Strict (Map )
59
64
import Data.Map.Strict qualified as Map
60
65
import Data.Maybe (mapMaybe )
61
66
import Data.Ord
62
- import Data.OrdPSQ (OrdPSQ )
63
- import Data.OrdPSQ qualified as PSQ
64
- import Data.IntPSQ (IntPSQ )
65
- import Data.IntPSQ qualified as IPSQ
66
67
import Data.Set (Set )
67
68
import Data.Set qualified as Set
68
69
import Data.Time (UTCTime (.. ), fromGregorian )
@@ -87,7 +88,8 @@ import Control.Monad.IOSim.Types hiding (SimEvent (SimEvent), Trace (SimTrace))
87
88
import Control.Monad.IOSim.Types (SimEvent )
88
89
import Control.Monad.IOSimPOR.Timeout (unsafeTimeout )
89
90
import Control.Monad.IOSimPOR.Types
90
- import Data.Coerce (coerce , Coercible )
91
+ import Data.Coerce (Coercible , coerce )
92
+ import Data.Hashable
91
93
92
94
--
93
95
-- Simulation interpreter
@@ -181,7 +183,9 @@ data TimerCompletionInfo s =
181
183
-- ^ `timeout` timer run by `IOSimThreadId` which was assigned the given
182
184
-- `TimeoutId` (only used to report in a trace).
183
185
184
- type RunQueue = OrdPSQ (Down IOSimThreadId ) (Down IOSimThreadId ) ()
186
+ instance Hashable a => Hashable (Down a )
187
+
188
+ type RunQueue = HashPSQ (Down IOSimThreadId ) (Down IOSimThreadId ) ()
185
189
type Timeouts s = IntPSQ Time (TimerCompletionInfo s )
186
190
187
191
-- | Internal state.
0 commit comments