chiark / gitweb /
actually before we block
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 1 Aug 2020 00:58:14 +0000 (01:58 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 1 Aug 2020 00:58:14 +0000 (01:58 +0100)
src/sse.rs

index 9273cb36aed081eedfcc6758758d138259330382..20325ad7865cd707af6dea125d90f3bf2d5d18eb 100644 (file)
@@ -66,13 +66,6 @@ impl Read for UpdateReader {
 
     let cv = pu.get_cv();
 
-    if (||{
-      (*ig).gs.players.get(self.player)?;
-      let client = ig.clients.get_mut(self.client)?;
-      client.lastseen = Instant::now();
-      Some(())
-    })() == None { return Ok(0) }
-
     loop {
       let generated = orig_wanted - buf.len();
       if generated > 0 {
@@ -91,6 +84,13 @@ impl Read for UpdateReader {
       // xxx this endless stream is a leak
       // restart it occasionally
 
+      if (||{
+        (*ig).gs.players.get(self.player)?;
+        let client = ig.clients.get_mut(self.client)?;
+        client.lastseen = Instant::now();
+        Some(())
+      })() == None { return Ok(0) }
+
       ig.c = cv.wait_timeout(ig.c, UPDATE_KEEPALIVE)
         .map_err(|_| em("poison"))?.0;