Минимальная кроссплатформенная высокопроизводительная библиотека асинхронного ввода-вывода, написанная на 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 .
Примером может служить навязчивый связанный список приостановленных кадров асинхронной функции, которые должны быть возобновлены после получения уведомления о том, что дескриптор/дескриптор файла готов к записи/чтению.