File tree 5 files changed +157
-8
lines changed
test/Test/Database/LSMTree/Normal/StateMachine
5 files changed +157
-8
lines changed Original file line number Diff line number Diff line change @@ -527,7 +527,7 @@ instance NoThunks a => NoThunks (StrictTVar IO a) where
527
527
instance NoThunks a => NoThunks (StrictMVar IO a ) where
528
528
showTypeOf (_ :: Proxy (StrictMVar IO a )) = " StrictMVar IO"
529
529
wNoThunks ctx var = do
530
- x <- readMVar var
530
+ ! x <- readMVar var -- TODO: undo
531
531
noThunks ctx x
532
532
533
533
{- ------------------------------------------------------------------------------
Original file line number Diff line number Diff line change @@ -1211,6 +1211,7 @@ snapshot resolve snap label th = do
1211
1211
(RW. unsafeAcquireWriteAccess (tableContent thEnv))
1212
1212
(atomically . RW. unsafeReleaseWriteAccess (tableContent thEnv))
1213
1213
$ \ reg content -> do
1214
+ supplyCredits (Entry. unNumEntries $ case confWriteBufferAlloc conf of AllocNumEntries x -> x) (tableLevels content)
1214
1215
content' <- flushWriteBuffer
1215
1216
(TraceMerge `contramap` tableTracer th)
1216
1217
conf
Original file line number Diff line number Diff line change @@ -706,11 +706,18 @@ addRunToLevels tr conf@TableConfig{..} resolve hfs hbio root uc r0 reg levels =
706
706
traceWith tr $ AtLevel ln $ TraceExpectCompletedMergeSingleRun (runNumber $ Run. runRunFsPaths r)
707
707
pure r
708
708
expectCompletedMerge ln (MergingRun _ _ var) = do
709
- withMVar var $ \ case
710
- CompletedMerge r -> do
709
+ modifyMVarMasked var $ \ case
710
+ x @ ( CompletedMerge r) -> do
711
711
traceWith tr $ AtLevel ln $ TraceExpectCompletedMerge (runNumber $ Run. runRunFsPaths r)
712
- pure r
713
- OngoingMerge _rs _ _m -> error " expectCompletedMerge: OngoingMerge not yet supported" -- TODO: implement.
712
+ pure (x, r)
713
+ OngoingMerge _rs _ _m -> do
714
+ -- RefCount n <- Merge.readRefCount m
715
+ -- let !n' = fromIntegralChecked n
716
+ -- V.forM_ rs $ \r -> Run.removeReferenceN r n'
717
+ -- r <- Merge.complete m
718
+ -- Merge.removeReferenceN m n'
719
+ -- pure (CompletedMerge r, r)
720
+ error " expectCompletedMerge: OngoingMerge not yet supported" -- TODO: implement.
714
721
715
722
newMerge :: MergePolicyForLevel
716
723
-> Merge. Level
Original file line number Diff line number Diff line change @@ -122,7 +122,9 @@ runNumber r = Paths.runNumber (Run.runRunFsPaths r)
122
122
-> HasFS IO h
123
123
-> HasBlockIO IO h
124
124
-> TableConfig
125
+ -> UniqCounter IO
125
126
-> SessionRoot
127
+ -> ResolveSerialisedValue
126
128
-> SnapLevels
127
129
-> IO (Levels IO h)
128
130
#-}
You can’t perform that action at this time.
0 commit comments