Add context to last critical io error
and remove generic critical io error enum variant
This commit is contained in:
parent
bc0fe6be70
commit
2ea62aec6a
|
@ -24,12 +24,7 @@ pub enum CriticalError {
|
|||
#[diagnostic(code(watchexec::critical::external))]
|
||||
External(#[from] Box<dyn std::error::Error + Send + Sync>),
|
||||
|
||||
/// A critical I/O error occurred (generic).
|
||||
#[error("io(unspecified): {0}")]
|
||||
#[diagnostic(code(watchexec::critical::io_error_generic))]
|
||||
IoErrorGeneric(#[from] std::io::Error),
|
||||
|
||||
/// A critical I/O error occurred (specific).
|
||||
/// A critical I/O error occurred.
|
||||
#[error("io({about}): {err}")]
|
||||
#[diagnostic(code(watchexec::critical::io_error))]
|
||||
IoError {
|
||||
|
|
|
@ -106,7 +106,9 @@ async fn imp_worker(
|
|||
macro_rules! listen {
|
||||
($sig:ident) => {{
|
||||
trace!(kind=%stringify!($sig), "listening for unix signal");
|
||||
signal(SignalKind::$sig())?
|
||||
signal(SignalKind::$sig()).map_err(|err| CriticalError::IoError {
|
||||
about: concat!("setting ", stringify!($sig), " signal listener"), err
|
||||
})?
|
||||
}}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue