Минимальная кроссплатформенная высокопроизводительная библиотека асинхронного ввода-вывода, написанная на Zig.
bind
, listen
, connect
, accept
read
, recv
, recvFrom
write
, send
, sendTo
bind
, listen
, connect
, accept
read
, recv
, recvFrom
write
, send
, sendTo
Notifier
уведомляет о завершении событий ввода-вывода или о готовности к чтению/записи зарегистрированных файловых дескрипторов/дескрипторов.
Если Notifier
сообщает о завершении событий ввода-вывода, он предназначен для обертывания уровня уведомлений ввода-вывода на основе проактора в операционной системе, например портов завершения ввода-вывода в Windows.
Если Notifier
сообщает о готовности к чтению/записи зарегистрированных файловых дескрипторов/дескрипторов, он предназначен для обертывания уровня уведомлений ввода-вывода на основе реактора в операционной системе, например epoll в Linux или kqueue в операционных системах на базе Darwin. .
Цель Notifier
— управлять выполнением системных вызовов асинхронного ввода-вывода после уведомления о событии ввода-вывода на основе реактора/проактора путем отправки приостановленных кадров асинхронных функций, которые должны быть возобновлены пулом потоков/планировщиком (например, kprotty/zap ).
Реализация Handle
специфична для реализации Notifier
, хотя в целом она охватывает и представляет дескриптор/дескриптор файла в программе.
В зависимости от реализации Notifier
, под которую подпадает реализация Handle
, состояние, необходимое для управления асинхронными системными вызовами ввода-вывода через Handle
сохраняется внутри Handle
.
Примером может служить навязчивый связанный список приостановленных кадров асинхронной функции, которые должны быть возобновлены после получения уведомления о том, что дескриптор/дескриптор файла готов к записи/чтению.