Skip to content

Commit 5d860cc

Browse files
committed
fix(simulation): clarify pruneVoteBuffer
1 parent a93335a commit 5d860cc

File tree

1 file changed

+9
-6
lines changed
  • simulation/src/LeiosProtocol/Short

1 file changed

+9
-6
lines changed

simulation/src/LeiosProtocol/Short/Node.hs

+9-6
Original file line numberDiff line numberDiff line change
@@ -446,6 +446,8 @@ leiosNode tracer cfg followers peers = do
446446
, pruningThreads
447447
]
448448

449+
-- | After the last vote-receiving slot of each pipeline,
450+
-- prune all votes from before the last vote-sending slot.
449451
pruneVoteBuffer ::
450452
(Monad m, MonadDelay m, MonadTime m, MonadSTM m) =>
451453
Tracer m LeiosNodeEvent ->
@@ -455,14 +457,15 @@ pruneVoteBuffer ::
455457
pruneVoteBuffer _tracer cfg st = go (toEnum 0)
456458
where
457459
go p = do
458-
let last_vote_send = snd $ stageRangeOf cfg.leios p VoteSend
459-
let last_vote_recv = snd $ stageRangeOf cfg.leios p VoteRecv
460-
let pruneTo = succ last_vote_send
461-
_ <- waitNextSlot cfg.slotConfig (succ last_vote_recv)
460+
let lastVoteSend = snd $ stageRangeOf cfg.leios p VoteSend
461+
let lastVoteRecv = snd $ stageRangeOf cfg.leios p VoteRecv
462+
let pruneTo = succ lastVoteSend
463+
_ <- waitNextSlot cfg.slotConfig (succ lastVoteRecv)
462464
atomically $ do
463465
modifyTVar' st.relayVoteState.relayBufferVar $
464-
RB.filter $
465-
\RB.EntryWithTicket{value} -> (snd value).slot >= pruneTo
466+
RB.filter $ \vote ->
467+
let voteSlot = (snd vote.value).slot
468+
in voteSlot >= pruneTo
466469
writeTVar st.prunedVoteStateToVar $! pruneTo
467470
go (succ p)
468471

0 commit comments

Comments
 (0)