diff --git a/src/runtime2/communication.rs b/src/runtime2/communication.rs index 2d0aee324b8730312c3a22e5c81f677fd31e7e5c..c615f06d5d5d08a99f8dbae16ff36c34639be553 100644 --- a/src/runtime2/communication.rs +++ b/src/runtime2/communication.rs @@ -26,10 +26,20 @@ pub enum PortKind { #[derive(Debug, Clone, Copy, PartialEq, Eq)] pub enum PortState { Open, - Blocked, + BlockedDueToPeerChange, + BlockedDueToFullBuffers, Closed, } +impl PortState { + pub fn is_blocked(&self) -> bool { + match self { + PortState::BlockedDueToPeerChange | PortState::BlockedDueToFullBuffers => true, + PortState::Open | PortState::Closed => false, + } + } +} + pub struct Channel { pub putter_id: PortId, pub getter_id: PortId,