#fibers #queue #timeout #push

fibers_timeout_queue

Timeout queue based on fibers crate

1 unstable release

Uses old Rust 2015

0.1.0 Sep 13, 2018

#16 in #fibers

Download history 52/week @ 2024-01-12 114/week @ 2024-01-19 104/week @ 2024-01-26 108/week @ 2024-02-02 145/week @ 2024-02-09 154/week @ 2024-02-16 295/week @ 2024-02-23 85/week @ 2024-03-01 35/week @ 2024-03-08 42/week @ 2024-03-15 39/week @ 2024-03-22 43/week @ 2024-03-29 16/week @ 2024-04-05

152 downloads per month
Used in 2 crates

MIT license

11KB
133 lines

fibers_timeout_queue

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

This crate provides a timeout queue based on fibers crate.

Documentation

Examples

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);

Dependencies

~0.9–1.2MB
~20K SLoC