Skip to content

Commit

Permalink
peer-selection: use HasCallStack where pickPeers is used
Browse files Browse the repository at this point in the history
  • Loading branch information
coot committed Apr 16, 2024
1 parent 42f9cc6 commit edc011a
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 13 deletions.
Expand Up @@ -12,6 +12,7 @@ import Data.Map.Strict (Map)
import Data.Map.Strict qualified as Map
import Data.Set (Set)
import Data.Set qualified as Set
import GHC.Stack (HasCallStack)

import Control.Applicative (Alternative)
import Control.Concurrent.JobPool (Job (..))
Expand Down Expand Up @@ -45,6 +46,7 @@ belowTarget :: forall peeraddr peerconn m.
, MonadDelay m
, MonadSTM m
, Ord peeraddr
, HasCallStack
)
=> PeerSelectionActions peeraddr peerconn m
-> MkGuardedDecision peeraddr peerconn m
Expand Down Expand Up @@ -137,7 +139,7 @@ belowTargetBigLedgerPeers actions


belowTargetLocal :: forall peeraddr peerconn m.
(MonadDelay m, MonadSTM m, Ord peeraddr)
(MonadDelay m, MonadSTM m, Ord peeraddr, HasCallStack)
=> PeerSelectionActions peeraddr peerconn m
-> MkGuardedDecision peeraddr peerconn m
belowTargetLocal actions
Expand Down Expand Up @@ -234,7 +236,8 @@ belowTargetLocal actions
]

belowTargetOther :: forall peeraddr peerconn m.
(MonadDelay m, MonadSTM m, Ord peeraddr)
(MonadDelay m, MonadSTM m, Ord peeraddr,
HasCallStack)
=> PeerSelectionActions peeraddr peerconn m
-> MkGuardedDecision peeraddr peerconn m
belowTargetOther actions
Expand Down Expand Up @@ -472,6 +475,7 @@ aboveTarget :: forall peeraddr peerconn m.
( Alternative (STM m)
, MonadSTM m
, Ord peeraddr
, HasCallStack
)
=> PeerSelectionActions peeraddr peerconn m
-> MkGuardedDecision peeraddr peerconn m
Expand Down Expand Up @@ -559,7 +563,7 @@ aboveTargetBigLedgerPeers actions


aboveTargetLocal :: forall peeraddr peerconn m.
(MonadSTM m, Ord peeraddr)
(MonadSTM m, Ord peeraddr, HasCallStack)
=> PeerSelectionActions peeraddr peerconn m
-> MkGuardedDecision peeraddr peerconn m
aboveTargetLocal actions
Expand Down Expand Up @@ -639,7 +643,7 @@ aboveTargetLocal actions


aboveTargetOther :: forall peeraddr peerconn m.
(MonadSTM m, Ord peeraddr)
(MonadSTM m, Ord peeraddr, HasCallStack)
=> PeerSelectionActions peeraddr peerconn m
-> MkGuardedDecision peeraddr peerconn m
aboveTargetOther actions
Expand Down
Expand Up @@ -10,6 +10,7 @@ module Ouroboros.Network.PeerSelection.Governor.BigLedgerPeers
import Data.Map.Strict qualified as Map
import Data.Set (Set)
import Data.Set qualified as Set
import GHC.Stack (HasCallStack)

import Control.Applicative (Alternative)
import Control.Concurrent.JobPool (Job (..))
Expand Down Expand Up @@ -172,7 +173,7 @@ jobReqBigLedgerPeers PeerSelectionActions{ requestPublicRootPeers }


aboveTarget :: forall m peeraddr peerconn.
(Alternative (STM m), MonadSTM m, Ord peeraddr)
(Alternative (STM m), MonadSTM m, Ord peeraddr, HasCallStack)
=> MkGuardedDecision peeraddr peerconn m
aboveTarget PeerSelectionPolicy {policyPickColdPeersToForget}
st@PeerSelectionState {
Expand Down
Expand Up @@ -12,6 +12,7 @@ import Data.Map.Strict (Map)
import Data.Map.Strict qualified as Map
import Data.Set (Set)
import Data.Set qualified as Set
import GHC.Stack (HasCallStack)

import Control.Applicative (Alternative)
import Control.Concurrent.JobPool (Job (..))
Expand Down Expand Up @@ -69,7 +70,7 @@ belowTarget = belowTargetBigLedgerPeers <> belowTargetLocal <> belowTargetOther
-- configuration.
--
belowTargetLocal :: forall peeraddr peerconn m.
(MonadSTM m, Ord peeraddr)
(MonadSTM m, Ord peeraddr, HasCallStack)
=> PeerSelectionActions peeraddr peerconn m
-> MkGuardedDecision peeraddr peerconn m
belowTargetLocal actions
Expand Down Expand Up @@ -166,7 +167,7 @@ belowTargetLocal actions


belowTargetOther :: forall peeraddr peerconn m.
(MonadSTM m, Ord peeraddr)
(MonadSTM m, Ord peeraddr, HasCallStack)
=> PeerSelectionActions peeraddr peerconn m
-> MkGuardedDecision peeraddr peerconn m
belowTargetOther actions
Expand Down Expand Up @@ -250,7 +251,7 @@ belowTargetOther actions
-- state) then this monitoring action will be disabled.
--
belowTargetBigLedgerPeers :: forall peeraddr peerconn m.
(MonadSTM m, Ord peeraddr)
(MonadSTM m, Ord peeraddr, HasCallStack)
=> PeerSelectionActions peeraddr peerconn m
-> MkGuardedDecision peeraddr peerconn m
belowTargetBigLedgerPeers actions
Expand Down Expand Up @@ -497,7 +498,7 @@ aboveTarget :: forall peeraddr peerconn m.
aboveTarget = aboveTargetBigLedgerPeers <> aboveTargetOther

aboveTargetOther :: forall peeraddr peerconn m.
(MonadSTM m, Ord peeraddr)
(MonadSTM m, Ord peeraddr, HasCallStack)
=> PeerSelectionActions peeraddr peerconn m
-> MkGuardedDecision peeraddr peerconn m
aboveTargetOther actions
Expand Down Expand Up @@ -582,7 +583,7 @@ aboveTargetOther actions


aboveTargetBigLedgerPeers :: forall peeraddr peerconn m.
(MonadSTM m, Ord peeraddr)
(MonadSTM m, Ord peeraddr, HasCallStack)
=> PeerSelectionActions peeraddr peerconn m
-> MkGuardedDecision peeraddr peerconn m
aboveTargetBigLedgerPeers actions
Expand Down
Expand Up @@ -13,6 +13,7 @@ import Data.Hashable
import Data.List (sortBy)
import Data.Maybe (fromMaybe)
import Data.Set qualified as Set
import GHC.Stack (HasCallStack)
import System.Random (random)

import Control.Concurrent.JobPool (Job (..))
Expand Down Expand Up @@ -44,7 +45,8 @@ import Ouroboros.Network.Protocol.PeerSharing.Type (PeerSharingAmount)
-- It should be noted if the node is in bootstrap mode (i.e. in a sensitive
-- state) then this monitoring action will be disabled.
--
belowTarget :: (MonadAsync m, MonadTimer m, Ord peeraddr, Hashable peeraddr)
belowTarget :: (MonadAsync m, MonadTimer m, Ord peeraddr, Hashable peeraddr,
HasCallStack)
=> PeerSelectionActions peeraddr peerconn m
-> MkGuardedDecision peeraddr peerconn m
belowTarget actions
Expand Down Expand Up @@ -356,7 +358,7 @@ jobPeerShare PeerSelectionActions{requestPeerShare}
-- 'targetNumberOfRootPeers' (from combined sets of /local/ and /public root/
-- peers). 'policyPickColdPeersToForget' policy is used to pick the peers.
--
aboveTarget :: (MonadSTM m, Ord peeraddr)
aboveTarget :: (MonadSTM m, Ord peeraddr, HasCallStack)
=> MkGuardedDecision peeraddr peerconn m
aboveTarget PeerSelectionPolicy {
policyPickColdPeersToForget
Expand Down
Expand Up @@ -58,6 +58,7 @@ import Data.OrdPSQ qualified as PSQ
import Data.Semigroup (Min (..))
import Data.Set (Set)
import Data.Set qualified as Set
import GHC.Stack (HasCallStack)

import Control.Applicative (Alternative)
import Control.Concurrent.JobPool (Job)
Expand Down Expand Up @@ -1043,7 +1044,7 @@ establishedPeersStatus PeerSelectionState{establishedPeers, activePeers} =
-- | Check pre-conditions and post-conditions on the pick policies,
-- and supply additional peer attributes from the current state.
--
pickPeers :: (Ord peeraddr, Functor m)
pickPeers :: (Ord peeraddr, Functor m, HasCallStack)
=> PeerSelectionState peeraddr peerconn
-> PickPolicy peeraddr m
-> Set peeraddr -> Int -> m (Set peeraddr)
Expand Down

0 comments on commit edc011a

Please sign in to comment.