chiark / gitweb /
do ended client after we decide to block
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 1 Aug 2020 00:57:29 +0000 (01:57 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 1 Aug 2020 00:57:29 +0000 (01:57 +0100)
src/sse.rs

index e2e4ea73aed2eb65e3b051befc75a98d4c674bf9..9273cb36aed081eedfcc6758758d138259330382 100644 (file)
@@ -35,13 +35,6 @@ impl Read for UpdateReader {
       |s| io::Error::new(io::ErrorKind::Other, anyhow!(s));
 
     let mut ig = self.gref.lock().map_err(|_| em("poison"))?;
-    if (||{
-      (*ig).gs.players.get(self.player)?;
-      let client = ig.clients.get_mut(self.client)?;
-      client.lastseen = Instant::now();
-      Some(())
-    })() == None { return Ok(0) }
-
     let orig_wanted = orig_buf.len();
     let mut buf = orig_buf.as_mut();
 
@@ -70,8 +63,16 @@ impl Read for UpdateReader {
              &self.to_send)?;
       self.to_send.try_increment().unwrap();
     }
+
     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 {