From 957c434b67b5e1e294b659f6aac31d5d4108beca Mon Sep 17 00:00:00 2001 From: Pat Hickey Date: Mon, 25 Jan 2021 12:14:27 -0800 Subject: [PATCH] ErrorExt: trap convenience method --- crates/wasi-c2/cap-std-sync/src/sched/windows.rs | 10 +++++----- crates/wasi-c2/src/error.rs | 4 ++++ 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/crates/wasi-c2/cap-std-sync/src/sched/windows.rs b/crates/wasi-c2/cap-std-sync/src/sched/windows.rs index 8b7bdd3317..9d22acd3b0 100644 --- a/crates/wasi-c2/cap-std-sync/src/sched/windows.rs +++ b/crates/wasi-c2/cap-std-sync/src/sched/windows.rs @@ -1,4 +1,4 @@ -use anyhow::{anyhow, Context}; +use anyhow::Context; use std::ops::Deref; use std::os::windows::io::{AsRawHandle, RawHandle}; use std::sync::mpsc::{self, Receiver, RecvTimeoutError, Sender, TryRecvError}; @@ -69,7 +69,7 @@ impl WasiSched for SyncSched { }; let state = STDIN_POLL .lock() - .map_err(|_| anyhow!("failed to take lock of STDIN_POLL"))? + .map_err(|_| Error::trap("failed to take lock of STDIN_POLL"))? .poll(waitmode)?; for readsub in stdin_read_subs.into_iter() { match state { @@ -206,7 +206,7 @@ impl StdinPoll { // Clean up possibly unread result from previous poll. Ok(_) | Err(TryRecvError::Empty) => {} Err(TryRecvError::Disconnected) => { - return Err(anyhow!("StdinPoll notify_rx channel closed")) + return Err(Error::trap("StdinPoll notify_rx channel closed")) } } @@ -221,7 +221,7 @@ impl StdinPoll { Ok(r) => Ok(r), Err(RecvTimeoutError::Timeout) => Ok(PollState::TimedOut), Err(RecvTimeoutError::Disconnected) => { - Err(anyhow!("StdinPoll notify_rx channel closed")) + Err(Error::trap("StdinPoll notify_rx channel closed")) } }, WaitMode::Infinite => self @@ -232,7 +232,7 @@ impl StdinPoll { Ok(r) => Ok(r), Err(TryRecvError::Empty) => Ok(PollState::NotReady), Err(TryRecvError::Disconnected) => { - Err(anyhow!("StdinPoll notify_rx channel closed")) + Err(Error::trap("StdinPoll notify_rx channel closed")) } }, } diff --git a/crates/wasi-c2/src/error.rs b/crates/wasi-c2/src/error.rs index 44bcab1795..7dd620a9e4 100644 --- a/crates/wasi-c2/src/error.rs +++ b/crates/wasi-c2/src/error.rs @@ -48,6 +48,7 @@ pub enum ErrorKind { } pub trait ErrorExt { + fn trap(msg: impl Into) -> Self; fn too_big() -> Self; fn badf() -> Self; fn exist() -> Self; @@ -64,6 +65,9 @@ pub trait ErrorExt { } impl ErrorExt for Error { + fn trap(msg: impl Into) -> Self { + anyhow::anyhow!(msg.into()) + } fn too_big() -> Self { ErrorKind::TooBig.into() }