1 unstable release
0.1.0 | May 9, 2022 |
---|
#29 in #reactor
Used in 2 crates
15KB
334 lines
Reactor
Reactors react to side effects in the tasks. These side effects could be running timers or listening to OS events.
Timers
The timers this reactor currently exposes are simple and naive. It stores all Instant + Waker pairs in a priority queue, the reactor book-keeping will run and attempts to wake any elapsed timers.
For a more complex and faster timer setup, take a look at https://tokio.rs/blog/2018-03-timers
OS Events
This reactor makes use of mio which was written for use in tokio, but was built into a separate crate. It allows for registering data sources for events, and then polling for those events.
We store use an async-channel per event source registration. Any events that are relevent are pushed to the channel. If an async-read/write future is called, it will retrieve those events from the channel and handle them accordingly.
Currently, the only implemented form of IO is TCP listeners and streams
Dependencies
~3–14MB
~122K SLoC