Просмотр исходного кода

refinery: bugfix

start the channel BEFORE calling .await on the handshake task. otherwise
the channel does not exist yet and the handshake will timeout.
draoi 2 лет назад
Родитель
Сommit
5aa187913f
1 измененных файлов с 2 добавлено и 2 удалено
  1. 2 2
      src/net/hosts/refinery.rs

+ 2 - 2
src/net/hosts/refinery.rs

@@ -174,13 +174,13 @@ async fn ping_node_impl(addr: Url, p2p: P2pPtr) -> bool {
                 p2p.executor(),
             );
 
+            channel.clone().start(p2p.executor());
+
             // Ensure the channel gets stopped by adding a timeout to the handshake. Otherwise if
             // the handshake does not finish channel.stop() will never get called, resulting in
             // zombie processes.
             let result = timeout(Duration::from_secs(5), handshake_task).await;
 
-            channel.clone().start(p2p.executor());
-
             match result {
                 Ok(_) => {
                     debug!(target: "net::refinery::ping_node()", "Handshake success! Stopping channel.");