Files
@ 9b5ea2f879a4
Branch filter:
Location: CSY/reowolf/src/runtime2/communication.rs - annotation
9b5ea2f879a4
585 B
application/rls-services+xml
Implement MPSC queue
Multiple producer, single consumer queue with the purpose of acting
as the inbox for components.
Multiple producer, single consumer queue with the purpose of acting
as the inbox for components.
0e1a76667937 0e1a76667937 0e1a76667937 0e1a76667937 0e1a76667937 0e1a76667937 0e1a76667937 0e1a76667937 0e1a76667937 0e1a76667937 0e1a76667937 0e1a76667937 0e1a76667937 0e1a76667937 0e1a76667937 0e1a76667937 0e1a76667937 0e1a76667937 0e1a76667937 0e1a76667937 0e1a76667937 0e1a76667937 0e1a76667937 0e1a76667937 0e1a76667937 0e1a76667937 0e1a76667937 0e1a76667937 0e1a76667937 0e1a76667937 0e1a76667937 0e1a76667937 0e1a76667937 0e1a76667937 0e1a76667937 0e1a76667937 0e1a76667937 0e1a76667937 | use super::runtime::*;
#[derive(Copy, Clone)]
pub struct PortId(pub u32);
impl PortId {
pub fn new_invalid() -> Self {
return Self(u32::MAX);
}
}
pub struct Peer {
pub id: CompId,
pub(crate) handle: CompHandle,
}
pub enum PortKind {
Putter,
Getter,
}
pub enum PortState {
Open,
Closed,
}
pub struct Port {
pub self_id: PortId,
pub peer_id: PortId,
pub kind: PortKind,
pub state: PortState,
pub local_peer_index: u32,
}
/// Public inbox: accessible by all threads. Essentially a MPSC channel
pub struct InboxPublic {
}
|