pub struct MessageQueue {
state: Mutex<QueueState>,
send_waiters: SpinLock<WaitQueue>,
recv_waiters: SpinLock<WaitQueue>,
max_bytes: usize,
}Expand description
进程间消息队列(支持阻塞的发送/接收)
Fields§
§state: Mutex<QueueState>队列状态:消息与当前字节数
send_waiters: SpinLock<WaitQueue>等待发送(队列满)的进程
recv_waiters: SpinLock<WaitQueue>等待接收(队列空)的进程
max_bytes: usize队列的最大容量(字节)
Implementations§
Source§impl MessageQueue
impl MessageQueue
Sourcepub fn recv_by_type(&self, mtype: i32) -> Message
pub fn recv_by_type(&self, mtype: i32) -> Message
按类型接收(阻塞直到有匹配类型)
Sourcepub fn try_recv_by_type(&self, mtype: i32) -> Option<Message>
pub fn try_recv_by_type(&self, mtype: i32) -> Option<Message>
非阻塞按类型接收
Sourcepub fn used_bytes(&self) -> usize
pub fn used_bytes(&self) -> usize
查询当前已用字节数
Sourcepub fn set_max_bytes(&mut self, max: usize)
pub fn set_max_bytes(&mut self, max: usize)
设置最大容量