1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
//! This crate provides timers for use with tokio that rely on OS mechanisms for timer management //! rather than a separate timing mechanism like [`tokio-timer`]. This comes at somewhat increased //! overhead if you have many timers, but allows the timers to have any granularity supported by //! your operating system where `tokio-timer` can only support timers with a granularity of 1ms. //! In particular, the system timers usually support whatever granularity the underlying hardware //! supports (see "High-resolution timers" in [`time(7)`]), which on my laptop is 1ns! //! Realistically, you won't be able to make your timers higher resolution than how long system //! calls on your system take, which is usually on the order of hundreds of nanoseconds. //! //! The current implementation uses [`timerfd_create(2)`] on Linux, and [`kqueue(2)` timers] on //! macOS and BSDs. //! //! [`tokio-timer`]: https://docs.rs/tokio-timer/ //! [`timerfd_create(2)`]: https://linux.die.net/man/2/timerfd_settime //! [`kqueue(2)` timers]: https://man.openbsd.org/kqueue.2 //! [`time(7)`]: https://linux.die.net/man/7/time #![deny(missing_docs)] mod delay; pub use self::delay::Delay; mod interval; pub use self::interval::Interval; mod sys;