diff --git a/core/src/tasks/tasks.rs b/core/src/tasks/tasks.rs index 8614087a..697c749e 100644 --- a/core/src/tasks/tasks.rs +++ b/core/src/tasks/tasks.rs @@ -121,12 +121,13 @@ impl Tasks { } pub fn cancel(&mut self) -> bool { - let running = self.scheduler.running.read(); - if !running.get_id(self.cursor).map(|id| self.scheduler.cancel(id)).unwrap_or(false) { + let id = self.scheduler.running.read().get_id(self.cursor); + if id.map(|id| self.scheduler.cancel(id)) != Some(true) { return false; } - self.cursor = self.cursor.min(running.len().saturating_sub(1)); + let len = self.scheduler.running.read().len(); + self.cursor = self.cursor.min(len.saturating_sub(1)); true }