chiark / gitweb /
early return deadlines
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 22 Aug 2021 17:34:35 +0000 (18:34 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 22 Aug 2021 17:34:35 +0000 (18:34 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
server/suser.rs

index 3a683a63b4737bcf105e0f98668ba4477623bbe8..b1a6409626e5241c781991966d463f8c12d5562a 100644 (file)
@@ -49,6 +49,11 @@ pub async fn run(global: Arc<Global>,
       .min()
       .unwrap_or(ic.max_batch_down)
       .sat();
+    let earliest_deadline = outstanding
+      .iter()
+      .map(|o| o.oi.deadline)
+      .min();
+
 
     if let Some(req) = {
       let now = Instant::now();
@@ -210,6 +215,14 @@ pub async fn run(global: Arc<Global>,
           },
         }
       }
+
+      () = async {if let Some(deadline) = earliest_deadline {
+        tokio::time::sleep_until(deadline).await;
+      } else {
+        future::pending().await
+      } } =>
+      {
+      }
     }
   }
 }