2 releases
0.1.1 | Aug 8, 2021 |
---|---|
0.1.0 | Aug 1, 2021 |
#2 in #netty
18KB
418 lines
HashedWheelTimer
Rust implementation of the Netty HashedWheelTimer.
WARNING: This is a test product. Do not use it in a production deployment.
Build requirements
You only need a stable version of the Rust compiler.
How to use the library
Put the following in your Cargo.toml
:
[dependencies]
hashed_wheel_timer = "0.1.1"
Example
The following bit of code will write the byte string to STDOUT
use hashed_wheel_timer::{TimerTask, WheelTimer};
use std::thread;
use std::time::Duration;
struct ReaderIdleTimeoutTask {
value: u64,
}
impl ReaderIdleTimeoutTask {
fn new(value: u64) -> ReaderIdleTimeoutTask {
ReaderIdleTimeoutTask { value }
}
}
impl TimerTask for ReaderIdleTimeoutTask {
fn run(&mut self) {
println!("ReaderIdleTimeoutTask expire, value {}", self.value)
}
}
fn main() {
let mut timer = WheelTimer::new(500, 10).unwrap();
let task = Box::new(ReaderIdleTimeoutTask::new(100));
timer.new_timeout(task, Duration::new(1, 0));
thread::sleep(Duration::new(5, 0))
}