From: Ian Jackson Date: Sat, 1 Aug 2020 00:57:29 +0000 (+0100) Subject: do ended client after we decide to block X-Git-Tag: otter-0.2.0~1203 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=566bfcfc4b58042419f47c9cbbe5a55da888169a;p=otter.git do ended client after we decide to block --- diff --git a/src/sse.rs b/src/sse.rs index e2e4ea73..9273cb36 100644 --- a/src/sse.rs +++ b/src/sse.rs @@ -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 {