chiark / gitweb /
sse: Remove a now-redundant loop
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 11 Jul 2021 22:49:36 +0000 (23:49 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 19 Mar 2022 16:01:02 +0000 (16:01 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
daemon/sse.rs

index 31dceaf9fb27959a88a85a7f61b62c910c8016f0..d58537d2734251b3309f527230f9c0c970f4ea00 100644 (file)
@@ -184,37 +184,33 @@ impl Read for UpdateReader {
 
     let cv = pu.get_cv();
 
-    loop {
-      let generated = buf.generated();
-      if generated > 0 {
-        self.need_flush = true;
-        return Ok(generated)
-      }
-
-      if self.need_flush {
-        self.need_flush = false;
-        return Err(io::Error::new(io::ErrorKind::WouldBlock,
-                                  FlushWouldBlockError{}));
-      }
-
-      if (||{
-        (*ig).gs.players.get(self.player)?;
-        let client = ig.clients.get_mut(self.client)?;
-        client.lastseen = Instant::now();
-        Some(())
-      })() == None { return Ok(0) }
-
-      cv.wait_for(&mut ig.c, UPDATE_KEEPALIVE);
-
-      write!(buf, "event: commsworking\n\
-                   data: online {} {} G{}\n\n",
-             self.player, self.client, ig.gs.gen)?;
-      self.keepalives += Wrapping(1);
+    let generated = buf.generated();
+    if generated > 0 {
       self.need_flush = true;
-      return Ok(buf.generated());
-/*
-      write!(buf,": keepalive\n\n")?; */
+      return Ok(generated)
     }
+
+    if self.need_flush {
+      self.need_flush = false;
+      return Err(io::Error::new(io::ErrorKind::WouldBlock,
+                                FlushWouldBlockError{}));
+    }
+
+    if (||{
+      (*ig).gs.players.get(self.player)?;
+      let client = ig.clients.get_mut(self.client)?;
+      client.lastseen = Instant::now();
+      Some(())
+    })() == None { return Ok(0) }
+
+    cv.wait_for(&mut ig.c, UPDATE_KEEPALIVE);
+
+    write!(buf, "event: commsworking\n\
+                 data: online {} {} G{}\n\n",
+           self.player, self.client, ig.gs.gen)?;
+    self.keepalives += Wrapping(1);
+    self.need_flush = true;
+    return Ok(buf.generated());
   }
 }