Skip to content

Commit 58a8c73

Browse files
committed
TOSQUASH: compilation fix
1 parent 83cab54 commit 58a8c73

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

src/Database/LSMTree/Internal/MergeSchedule.hs

+10-6
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ module Database.LSMTree.Internal.MergeSchedule (
1818
, MergingRun (..)
1919
, NumRuns (..)
2020
, MergingRunState (..)
21-
, NumStepsDone (..)
21+
, TotalCredits (..)
2222
-- * Flushes and scheduled merges
2323
, updatesWithInterleavedFlushes
2424
, flushWriteBuffer
@@ -278,9 +278,13 @@ newtype NumRuns = NumRuns { unNumRuns :: Int }
278278

279279
data MergingRunState m h =
280280
CompletedMerge !(Run m h)
281-
| OngoingMerge !(V.Vector (Run m h)) !(PrimVar (PrimState m) Int {- NumStepsDone -}) !(Merge m h)
281+
| OngoingMerge
282+
!(V.Vector (Run m h))
283+
!(PrimVar (PrimState m) Int) -- ^ 'TotalCredits'
284+
!(Merge m h)
282285

283-
newtype NumStepsDone = NumStepsDone { unNumStepsDone :: Int }
286+
-- | The total number of accumulated credits.
287+
newtype TotalCredits = TotalCredits { unTotalCredits :: Int }
284288
deriving stock (Show, Eq)
285289

286290
{-# SPECIALISE addReferenceLevels :: TempRegistry IO -> Levels IO h -> IO () #-}
@@ -906,11 +910,11 @@ supplyMergeCredits _ SingleRun{} = pure ()
906910
supplyMergeCredits (ScaledCredits c) (MergingRun _ _ var) = do
907911
mergeIsDone <- withMVar var $ \case
908912
CompletedMerge{} -> pure False
909-
(OngoingMerge _rs pvar m) -> do
913+
(OngoingMerge _rs totalCreditsVar m) -> do
910914
-- n >= c
911915
(n, stepResult) <- Merge.steps m c
912-
x <- readPrimVar pvar
913-
writePrimVar pvar $! n + x
916+
prev <- readPrimVar totalCreditsVar
917+
writePrimVar totalCreditsVar $! prev + c
914918
pure $ stepResult == MergeComplete
915919
when mergeIsDone $
916920
modifyMVarMasked_ var $ \case

0 commit comments

Comments
 (0)