How albanix/runtime works
Це невеликий Linux-орієнтований async runtime: користувач ставить futures у чергу Executor, а Executor запускає їх опитування. Окрема Reactor реєструє файлові дескриптори через epoll і пробуджує збережений Waker, який може повторно поставити задачу в чергу. У README описано запуск задач; джерело також показує механізм очікування готовності fd. Не показано, як futures отримують Reactor чи реєструють fd, тож цей зв’язок не домальовано.
Main entry points: lib.rs Reactor
Components 6
Планування задач
- Executor
src/lib.rs - Черга задач
src/lib.rs - Task / Waker
src/lib.rs
Готовність вводу-виводу
- Reactor
src/lib.rs - Linux epoll
Other components
- Користувач
Connections 10
- Користувач → Executor: spawn / run
- Користувач → Reactor: register fd
- Executor → Черга задач: ставить задачі
- Executor → Черга задач: діставати задачі
- Executor → Task / Waker: опитувати future
- Task / Waker → Черга задач: повторно ставити
- Reactor → Linux epoll: реєструвати fd
- Reactor → Linux epoll: чекати події
- Linux epoll → Reactor: повідомляти готовність
- Reactor → Task / Waker: будити Waker