#fibers #queue #timeout #push

fibers_timeout_queue

基于 fibers 的超时队列

1 个不稳定版本

使用旧 Rust 2015

0.1.0 2018年9月13日

#16#fibers


2 crate 中使用

MIT 许可证

11KB
133

fibers_timeout_queue

Crates.io: fibers_timeout_queue Documentation Build Status Code Coverage License: MIT

此 crate 提供了一个基于 fibers crate 的超时队列。

文档

示例

use fibers_timeout_queue::TimeoutQueue;
use std::time::Duration;
use std::thread;

let mut queue = TimeoutQueue::new();
assert_eq!(queue.pop(), None); // `queue` is empty

queue.push(1, Duration::from_millis(1000));
queue.push(2, Duration::from_millis(100));
queue.push(3, Duration::from_millis(10));
assert_eq!(queue.pop(), None); // No expired items

thread::sleep(Duration::from_millis(50));
assert_eq!(queue.pop(), Some(3)); // There is an expired item
assert_eq!(queue.pop(), None);

依赖关系

~1–1.2MB
~20K SLoC