Skip to content

Commit 4e77c23

Browse files
committed
fixup: retainedExpiredKeys quick exit
The common case is that not TXs has expired. If so exit quickly.
1 parent 825932a commit 4e77c23

1 file changed

Lines changed: 9 additions & 6 deletions

File tree

  • ouroboros-network/lib/Ouroboros/Network/TxSubmission/Inbound/V2

ouroboros-network/lib/Ouroboros/Network/TxSubmission/Inbound/V2/Types.hs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -534,14 +534,17 @@ retainedNextWake currentTime =
534534
{-# INLINE retainedNextWake #-}
535535

536536
retainedExpiredKeys :: Time -> RetainedTxs -> IntSet
537-
retainedExpiredKeys currentTime =
538-
go IntSet.empty
537+
retainedExpiredKeys currentTime retained =
538+
-- Quick exit if no TX has expired.
539+
case IntPSQ.findMin retained of
540+
Just (_, earliest, _) | earliest <= currentTime -> go IntSet.empty retained
541+
_ -> IntSet.empty
539542
where
540-
go expired retained =
541-
case IntPSQ.minView retained of
542-
Just (k, retainUntil, (), retained')
543+
go expired r =
544+
case IntPSQ.minView r of
545+
Just (k, retainUntil, (), r')
543546
| retainUntil <= currentTime ->
544-
go (IntSet.insert k expired) retained'
547+
go (IntSet.insert k expired) r'
545548
| otherwise ->
546549
expired
547550
Nothing ->

0 commit comments

Comments
 (0)