Uma biblioteca mínima de E/S assíncrona de alto desempenho e multiplataforma escrita em Zig.
bind , listen , connect , accept read , recv , recvFrom write , send , sendTo bind , listen , connect , accept read , recv , recvFrom write , send , sendTo Um Notifier notifica sobre a conclusão de eventos de E/S ou sobre a prontidão para leitura/gravação de descritores/identificadores de arquivos registrados.
Caso um Notifier relate a conclusão de eventos de E/S, ele será designado para envolver uma camada de notificação de E/S baseada em proator no sistema operacional, como portas de conclusão de E/S no Windows.
Caso um Notifier relate a prontidão de leitura/gravação de descritores/identificadores de arquivos registrados, ele será designado para envolver uma camada de notificação de E/S baseada em reator no sistema operacional, como epoll no Linux ou kqueue em sistemas operacionais baseados em Darwin .
O objetivo do Notifier é conduzir a execução de syscalls de E/S assíncronas após a notificação de um evento de E/S baseado em reator/proator, despachando quadros de função assíncronos suspensos para serem retomados por um pool de threads/agendador (por exemplo, kprotty/zap ).
A implementação de um Handle é específica para uma implementação Notifier , embora no geral envolva e represente um descritor/identificador de arquivo em um programa.
Sujeito à implementação Notifier em que a implementação de um Handle se enquadra, o estado necessário para conduzir syscalls de E/S assíncronas por meio de um Handle é mantido dentro de um Handle .
Um exemplo seria uma lista vinculada intrusiva de quadros de função assíncronos suspensos que devem ser retomados após o destinatário de uma notificação de que um descritor/identificador de arquivo está pronto para ser gravado/lido.