+ let peers_lock = self.peers.lock().unwrap();
+ for (descriptor, peer) in peers_lock.peers.iter() {
+ if peer.awaiting_pong {
+ descriptors_needing_disconnect.push(descriptor.clone());
+ }
+ }
+ }
+
+ for mut descriptor in descriptors_needing_disconnect.drain(..) {
+ descriptor.disconnect_socket();
+ }
+
+ {
+ let mut peers_lock = self.peers.lock().unwrap();