chiark / gitweb /
server: reorganise setup
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 16 Aug 2021 23:41:33 +0000 (00:41 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 16 Aug 2021 23:41:33 +0000 (00:41 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/bin/server.rs

index b0d347c49886efdc6e4f8c1c067cdf2672892939..297740a1552ff729de9b71c3f6a5c902f54502d6 100644 (file)
@@ -425,6 +425,7 @@ async fn main() {
 
     let ipif = Ipif::start(&global_config.ipif, None)?;
 
+    let ics = ics.into_iter().map(Arc::new).collect_vec();
     let (client_handles_send, client_handles_recv) = ics.iter()
       .map(|_ic| mpsc::channel(
         5 // xxx should me max_requests_outstanding but that's
@@ -436,18 +437,18 @@ async fn main() {
       client_handles_send,
       client_handles_recv,
     ).map(|(ic, web_send, web_recv)| {
-      let ic = Arc::new(ic);
+      let r = (ic.link.client,
+           Client {
+             ic: ic.clone(),
+             web: web_send,
+           });
 
       let ic_ = ic.clone();
       tasks.push((tokio::spawn(async move {
         run_client(ic_, web_recv).await.void_unwrap_err()
       }), format!("client {}", &ic)));
 
-      (ic.link.client,
-       Client {
-         ic,
-         web: web_send,
-       })
+      r
     }).collect();
     let global = Arc::new(Global {
       config: global_config,