Una biblioteca mínima de E/S asíncronas multiplataforma de alto rendimiento escrita en Zig.
bind , listen , connect , accept read , recv , recvFrom write , send , sendTo bind , listen , connect , accept read , recv , recvFrom write , send , sendTo Un Notifier notifica la finalización de eventos de E/S o la preparación para lectura/escritura de descriptores/identificadores de archivos registrados.
Si un Notifier informa la finalización de eventos de E/S, está designado para envolver una capa de notificación de E/S basada en proactor en el sistema operativo, como los puertos de finalización de E/S en Windows.
Si un Notifier informa la preparación para lectura/escritura de descriptores/identificadores de archivos registrados, está designado para envolver una capa de notificación de E/S basada en reactor en el sistema operativo, como epoll en Linux o kqueue en sistemas operativos basados en Darwin. .
El propósito del Notifier es impulsar la ejecución de llamadas al sistema de E/S asincrónicas tras la notificación de un evento de E/S basado en reactor/proactor mediante el envío de tramas de funciones asíncronas suspendidas para ser reanudadas por un grupo de subprocesos/programador (por ejemplo, kprotty/zap ).
La implementación de un Handle es específica de una implementación Notifier , aunque en general envuelve y representa un descriptor/identificador de archivo en un programa.
Sujeto a la implementación Notifier a la que pertenece la implementación de un Handle , el estado requerido para controlar las llamadas al sistema de E/S asincrónicas a través de un Handle se mantiene dentro de un Handle .
Un ejemplo sería una lista enlazada intrusiva de marcos de funciones asincrónicas suspendidas que deben reanudarse cuando el destinatario recibe una notificación de que un descriptor/identificador de archivo está listo para escribirse o leerse.