Skip to content

Commit 8d1bd2a

Browse files
committed
SPECIALISE pragmas for the Snapshot module
1 parent e355655 commit 8d1bd2a

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

src/Database/LSMTree/Internal/Snapshot.hs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,12 +69,14 @@ data SnapMergingRunState =
6969
Conversion to snapshot format
7070
-------------------------------------------------------------------------------}
7171

72+
{-# SPECIALISE snapLevels :: Levels IO h -> IO SnapLevels #-}
7273
snapLevels ::
7374
(PrimMonad m, MonadMVar m)
7475
=> Levels m h
7576
-> m SnapLevels
7677
snapLevels = V.mapM snapLevel
7778

79+
{-# SPECIALISE snapLevel :: Level IO h -> IO SnapLevel #-}
7880
snapLevel ::
7981
(PrimMonad m, MonadMVar m)
8082
=> Level m h
@@ -83,6 +85,7 @@ snapLevel Level{..} = do
8385
smr <- snapMergingRun incomingRuns
8486
pure (SnapLevel smr (V.map runNumber residentRuns))
8587

88+
{-# SPECIALISE snapMergingRun :: MergingRun IO h -> IO SnapMergingRun #-}
8689
snapMergingRun ::
8790
(PrimMonad m, MonadMVar m)
8891
=> MergingRun m h
@@ -92,6 +95,7 @@ snapMergingRun (MergingRun mrsVar) = do
9295
pure (SnapMergingRun smrs)
9396
snapMergingRun (SingleRun r) = pure (SnapSingleRun (runNumber r))
9497

98+
{-# SPECIALISE snapMergingRunState :: MergingRunState IO h -> IO SnapMergingRunState #-}
9599
snapMergingRunState ::
96100
PrimMonad m
97101
=> MergingRunState m h
@@ -107,6 +111,15 @@ runNumber r = Paths.runNumber (Run.runRunFsPaths r)
107111
Opening from snapshot format
108112
-------------------------------------------------------------------------------}
109113

114+
{-# SPECIALISE openLevels ::
115+
TempRegistry IO
116+
-> HasFS IO h
117+
-> HasBlockIO IO h
118+
-> TableConfig
119+
-> SessionRoot
120+
-> SnapLevels
121+
-> IO (Levels IO h)
122+
#-}
110123
openLevels ::
111124
forall m h. (MonadFix m, MonadMask m, MonadMVar m, MonadSTM m, MonadST m)
112125
=> TempRegistry m
@@ -150,6 +163,7 @@ openLevels reg hfs hbio TableConfig{..} sessionRoot levels =
150163
Run.removeReference
151164
openMergingRunState (SnapOngoingMerge _rns) = do
152165
error "openLevels: ongoing merge not yet supported"
166+
153167
{-------------------------------------------------------------------------------
154168
Levels
155169
-------------------------------------------------------------------------------}

0 commit comments

Comments
 (0)