8 个版本
| 0.3.4 | 2024 年 6 月 26 日 |
|---|---|
| 0.3.3 | 2024 年 6 月 26 日 |
| 0.3.1 | 2023 年 10 月 15 日 |
| 0.2.3 | 2023 年 7 月 25 日 |
| 0.1.2 | 2023 年 4 月 19 日 |
在 Rust 模式 中排名 2003
每月下载量 65
62KB
1.5K SLoC
sod-mpsc
sod::Service 实现与 std::sync::mpsc::channel 队列交互。
服务实现
MpscSender向std::sync::mpsc::channel发送消息。MpscSyncSender向std::sync::mpsc::sync_channel发送消息,如果通道已满则阻塞。MpscSyncTrySender尝试向std::sync::mpsc::sync_channel发送消息,如果通道已满,则可以通过sod::RetryService重试。MpscReceiver从std::sync::mpsc::channel或std::sync::mpsc::sync_channel接收消息,直到接收到一个元素为止,会阻塞。MpscTryReceiver尝试从std::sync::mpsc::channel或std::sync::mpsc::sync_channel接收,当通道为空时,可以通过sod::Retryable进行重试。
示例
use sod::Service;
use sod_mpsc::{MpscSender, MpscReceiver};
use std::sync::mpsc;
let (tx, rx) = mpsc::channel();
let pusher = MpscSender::new(tx);
let poller = MpscReceiver::new(rx);
pusher.process(1).unwrap();
pusher.process(2).unwrap();
assert_eq!(poller.process(()).unwrap(), 1);
assert_eq!(poller.process(()).unwrap(), 2);
依赖
~235–680KB
~16K SLoC