@@ -107,7 +107,7 @@ mod tests {
107107 pool. peer_pool ( ) . write ( ) . insert ( listener_addr, Peer :: new_candidate ( listener_addr, false ) ) ;
108108
109109 assert_eq ! ( pool. number_of_candidate_peers( ) , 1 ) ;
110- assert_eq ! ( pool. number_of_connecting_peers( ) , 0 ) ;
110+ assert_eq ! ( pool. number_of_connecting_peers( ) , Some ( 0 ) ) ;
111111 assert_eq ! ( pool. number_of_connected_peers( ) , 0 ) ;
112112 assert ! ( !pool. is_connecting( listener_addr) ) ;
113113 assert ! ( !pool. is_connected( listener_addr) ) ;
@@ -116,7 +116,7 @@ mod tests {
116116 assert ! ( pool. add_connecting_peer( listener_addr) . is_ok( ) ) ;
117117
118118 assert_eq ! ( pool. number_of_candidate_peers( ) , 0 ) ;
119- assert_eq ! ( pool. number_of_connecting_peers( ) , 1 ) ;
119+ assert_eq ! ( pool. number_of_connecting_peers( ) , Some ( 1 ) ) ;
120120 assert_eq ! ( pool. number_of_connected_peers( ) , 0 ) ;
121121 assert ! ( pool. is_connecting( listener_addr) ) ;
122122 assert ! ( !pool. is_connected( listener_addr) ) ;
@@ -133,11 +133,11 @@ mod tests {
133133 ) ;
134134
135135 assert_eq ! ( pool. number_of_candidate_peers( ) , 0 ) ;
136- assert_eq ! ( pool. number_of_connecting_peers( ) , 0 ) ;
136+ assert_eq ! ( pool. number_of_connecting_peers( ) , Some ( 0 ) ) ;
137137 assert_eq ! ( pool. number_of_connected_peers( ) , 1 ) ;
138138 assert ! ( !pool. is_connecting( listener_addr) ) ;
139139 assert ! ( pool. is_connected( listener_addr) ) ;
140- assert_eq ! ( pool. number_of_connected_validators( ) , 1 ) ;
140+ assert_eq ! ( pool. number_of_connected_validators( ) , Some ( 1 ) ) ;
141141
142142 // Verify the connected peer's fields.
143143 let connected = pool. get_connected_peer ( listener_addr) . expect ( "peer should be connected" ) ;
@@ -153,7 +153,7 @@ mod tests {
153153 let mut rng = TestRng :: default ( ) ;
154154
155155 // Empty pool: no validators.
156- assert_eq ! ( pool. number_of_connected_validators( ) , 0 ) ;
156+ assert_eq ! ( pool. number_of_connected_validators( ) , Some ( 0 ) ) ;
157157
158158 // Insert 2 validators and 1 client.
159159 let ( addr1, peer1) = make_connected_peer ( 3000 , NodeType :: Validator , & mut rng) ;
@@ -166,14 +166,14 @@ mod tests {
166166 pool_write. insert ( addr3, peer3) ;
167167 }
168168
169- assert_eq ! ( pool. number_of_connected_validators( ) , 2 ) ;
169+ assert_eq ! ( pool. number_of_connected_validators( ) , Some ( 2 ) ) ;
170170 assert_eq ! ( pool. number_of_connected_peers( ) , 3 ) ;
171171
172172 // A candidate peer should not be counted as a validator.
173173 let candidate_addr = SocketAddr :: from ( ( [ 127 , 0 , 0 , 1 ] , 3003 ) ) ;
174174 pool. peer_pool ( ) . write ( ) . insert ( candidate_addr, Peer :: new_candidate ( candidate_addr, false ) ) ;
175175
176- assert_eq ! ( pool. number_of_connected_validators( ) , 2 ) ;
176+ assert_eq ! ( pool. number_of_connected_validators( ) , Some ( 2 ) ) ;
177177 assert_eq ! ( pool. number_of_connected_peers( ) , 3 ) ;
178178 }
179179}
@@ -512,17 +512,21 @@ pub trait PeerPoolHandling<N: Network>: P2P {
512512 }
513513
514514 /// Returns the number of connected validators.
515- fn number_of_connected_validators ( & self ) -> usize {
516- self . peer_pool ( )
517- . read ( )
518- . values ( )
519- . filter ( |peer| peer. as_connected ( ) . is_some_and ( |peer| peer. is_validator ( ) ) )
520- . count ( )
515+ #[ cfg( feature = "metrics" ) ]
516+ fn number_of_connected_validators ( & self ) -> Option < usize > {
517+ Some (
518+ self . peer_pool ( )
519+ . try_read ( ) ?
520+ . values ( )
521+ . filter ( |peer| peer. as_connected ( ) . is_some_and ( |peer| peer. is_validator ( ) ) )
522+ . count ( ) ,
523+ )
521524 }
522525
523526 /// Returns the number of connecting peers.
524- fn number_of_connecting_peers ( & self ) -> usize {
525- self . peer_pool ( ) . read ( ) . values ( ) . filter ( |peer| peer. is_connecting ( ) ) . count ( )
527+ #[ cfg( feature = "metrics" ) ]
528+ fn number_of_connecting_peers ( & self ) -> Option < usize > {
529+ Some ( self . peer_pool ( ) . try_read ( ) ?. values ( ) . filter ( |peer| peer. is_connecting ( ) ) . count ( ) )
526530 }
527531
528532 /// Returns the number of candidate peers.
0 commit comments