diff --git a/src/lib.rs b/src/lib.rs index f885f79..b0d7f32 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -108,6 +108,13 @@ pub struct Peer>, messages: VecDeque>, } +impl Drop + for Peer +{ + fn drop(&mut self) { + self.closed.store(true, Ordering::Relaxed); + } +} impl Peer { /// Bind given port to listen to incoming messages. Creates a new Peer that @@ -124,6 +131,11 @@ impl Listener { } .ok(); } + Err(ref err) if err.kind() == io::ErrorKind::WouldBlock => {} Err(err) => { self.sender.send(ListenerMessage::Error(err)).ok(); }