From 923fa7aa9b3b17d8cfe149f975d7f2149f6e8d1a Mon Sep 17 00:00:00 2001 From: Andy Killorin <37423245+Speedy6451@users.noreply.github.com> Date: Sun, 24 Dec 2023 15:56:10 -0600 Subject: [PATCH] don't panic on failure --- server/src/fell.rs | 6 ++++-- server/src/mine.rs | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/server/src/fell.rs b/server/src/fell.rs index 9130724..fd0ec99 100644 --- a/server/src/fell.rs +++ b/server/src/fell.rs @@ -1,6 +1,6 @@ use std::ops::{Mul, Add}; -use log::{trace, warn, info}; +use log::{trace, warn, info, error}; use nalgebra::Vector2; use serde::{Serialize, Deserialize}; use time::OffsetDateTime; @@ -142,7 +142,9 @@ impl Task for TreeFarm { fn run(&mut self,turtle:TurtleCommander) -> AbortHandle { let frozen = self.clone(); tokio::spawn(async move { - frozen.sweep(turtle).await.unwrap(); + if let None = frozen.sweep(turtle).await { + error!("felling at {} failed", frozen.position); + } }).abort_handle() } diff --git a/server/src/mine.rs b/server/src/mine.rs index a47e8bf..48d0ba1 100644 --- a/server/src/mine.rs +++ b/server/src/mine.rs @@ -1,6 +1,6 @@ use std::sync::{Arc, atomic::{AtomicUsize, Ordering, AtomicI32}}; -use log::{info, warn}; +use log::{info, warn, error}; use serde::{Serialize, Deserialize}; use tokio::task::{JoinHandle, AbortHandle}; use typetag::serde; @@ -263,7 +263,9 @@ impl Task for Quarry { // TODO: handle failure // another turtle should get the next chunk while this is in flight, but program // termination or a None return should reschedule the chunk - mine_chunk_and_sweep(turtle, abs_pos, max_chunk).await.unwrap(); + if let None = mine_chunk_and_sweep(turtle, abs_pos, max_chunk).await { + error!("mining at {abs_pos} failed"); + } owned.fetch_sub(1, Ordering::AcqRel); }).abort_handle() }