From 54c5cca1729bd739d21242e5a8082ffc04a05786 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Fri, 31 Jul 2020 23:01:26 +0100 Subject: [PATCH] simplify PlayerUpdate interface --- src/sse.rs | 11 ++++++----- src/updates.rs | 5 ----- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/src/sse.rs b/src/sse.rs index ed2d5aac..d10d40b8 100644 --- a/src/sse.rs +++ b/src/sse.rs @@ -47,12 +47,12 @@ impl Read for UpdateReader { let pu = &mut ig.updates.get(self.player) .ok_or_else(|| em("player gonee"))?; - let cv = loop { - let next = match pu.get_or_cv(self.to_send) { - Ok(next) => next, Err(cv) => { break cv } + loop { + let next = match pu.read_log().get(self.to_send) { + Some(next) => next, None => { break } }; let next_len = UPDATE_MAX_FRAMING_SIZE + next.json_len(); - if next_len > buf.len() { break pu.get_cv() } + if next_len > buf.len() { break } let tu = next.for_transmit(self.client); // xxx handle overflow by allocating @@ -62,7 +62,8 @@ impl Read for UpdateReader { id: {}\n\n", &self.to_send)?; self.to_send.try_increment().unwrap(); - }; + } + let cv = pu.get_cv(); loop { let generated = orig_wanted - buf.len(); diff --git a/src/updates.rs b/src/updates.rs index e93fa6c4..9246a714 100644 --- a/src/updates.rs +++ b/src/updates.rs @@ -99,11 +99,6 @@ impl PlayerUpdates { self.cv.notify_all(); } pub fn read_log(&self) -> &PlayerUpdatesLog { &self.log } - - pub fn get_or_cv(&self, index: sse::UpdateId) - -> Result<&Arc,Arc> { - self.log.get(index).ok_or_else(|| self.cv.clone()) - } pub fn get_cv(&self) -> Arc { self.cv.clone() } } -- 2.30.2