@@ -73,21 +73,16 @@ impl Peer {
7373
7474 pub async fn run (
7575 & mut self ,
76- reader : StreamReader ,
77- writer : StreamWriter ,
76+ mut reader : StreamReader ,
77+ mut writer : StreamWriter ,
7878 ) -> Result < ( ) , PeerError > {
7979 let start_time = Instant :: now ( ) ;
8080 let ( tx, mut rx) = mpsc:: channel ( 32 ) ;
81- let mut lock = writer. lock ( ) . await ;
82- let writer = lock. deref_mut ( ) ;
83-
8481 // If a peer signals for V2 we will use it, otherwise just use plaintext.
8582 let ( message_mutex, mut peer_reader) = if self . services . has ( ServiceFlags :: P2P_V2 ) {
86- let mut lock = reader. lock ( ) . await ;
87- let read_lock = lock. deref_mut ( ) ;
8883 let handshake_result = tokio:: time:: timeout (
8984 Duration :: from_secs ( HANDSHAKE_TIMEOUT ) ,
90- self . try_handshake ( writer, read_lock ) ,
85+ self . try_handshake ( & mut writer, & mut reader ) ,
9186 )
9287 . await
9388 . map_err ( |_| PeerError :: HandshakeFailed ) ?;
@@ -101,7 +96,6 @@ impl Peer {
10196 let ( decryptor, encryptor) = handshake_result?;
10297 let message_mutex: MutexMessageGenerator =
10398 Mutex :: new ( Box :: new ( V2OutboundMessage :: new ( self . network , encryptor) ) ) ;
104- drop ( lock) ;
10599 let reader = Reader :: new ( V2MessageParser :: new ( reader, decryptor) , tx) ;
106100 ( message_mutex, reader)
107101 } else {
@@ -114,7 +108,7 @@ impl Peer {
114108 let mut message_lock = message_mutex. lock ( ) . await ;
115109 let outbound_messages = message_lock. deref_mut ( ) ;
116110 let message = outbound_messages. version_message ( None ) ?;
117- self . write_bytes ( writer, message) . await ?;
111+ self . write_bytes ( & mut writer, message) . await ?;
118112 self . message_counter . sent_version ( ) ;
119113 let read_handle = tokio:: spawn ( async move {
120114 peer_reader
@@ -147,7 +141,7 @@ impl Peer {
147141 if let Ok ( peer_message) = peer_message {
148142 match peer_message {
149143 Some ( message) => {
150- match self . handle_peer_message( message, writer, outbound_messages) . await {
144+ match self . handle_peer_message( message, & mut writer, outbound_messages) . await {
151145 Ok ( ( ) ) => continue ,
152146 Err ( e) => {
153147 match e {
@@ -166,7 +160,7 @@ impl Peer {
166160 node_message = self . main_thread_recv. recv( ) => {
167161 match node_message {
168162 Some ( message) => {
169- match self . main_thread_request( message, writer, outbound_messages) . await {
163+ match self . main_thread_request( message, & mut writer, outbound_messages) . await {
170164 Ok ( ( ) ) => continue ,
171165 Err ( e) => {
172166 match e {
0 commit comments