Eine minimale plattformübergreifende, leistungsstarke asynchrone I/O-Bibliothek, geschrieben in Zig.
bind
, listen
, connect
, accept
read
, recv
, recvFrom
write
, send
, sendTo
bind
, listen
, connect
, accept
read
, recv
, recvFrom
write
, send
, sendTo
Ein Notifier
benachrichtigt über den Abschluss von E/A-Ereignissen oder über die Lese-/Schreibbereitschaft registrierter Dateideskriptoren/Handles.
Sollte ein Notifier
den Abschluss von I/O-Ereignissen melden, ist er dafür vorgesehen, eine Proactor-basierte I/O-Benachrichtigungsschicht im Betriebssystem zu umschließen, wie z. B. I/O-Abschlussports unter Windows.
Sollte ein Notifier
die Lese-/Schreibbereitschaft registrierter Dateideskriptoren/Handles melden, ist er dafür vorgesehen, eine reaktorbasierte E/A-Benachrichtigungsschicht im Betriebssystem zu umschließen, wie z. B. epoll unter Linux oder kqueue auf Darwin-basierten Betriebssystemen .
Der Zweck des Notifier
besteht darin, die Ausführung asynchroner I/O-Systemaufrufe bei der Benachrichtigung über ein Reaktor-/Proaktor-basiertes I/O-Ereignis voranzutreiben, indem angehaltene asynchrone Funktionsrahmen gesendet werden, die von einem Thread-Pool/Scheduler (z. B. kprotty/zap) wieder aufgenommen werden ).
Die Implementierung eines Handle
ist spezifisch für eine Notifier
Implementierung, obwohl sie insgesamt einen Dateideskriptor/ein Handle in einem Programm umschließt und darstellt.
Abhängig von der Notifier
-Implementierung, unter die eine Handle
-Implementierung fällt, wird der Status, der zum Ansteuern asynchroner E/A-Systemaufrufe über ein Handle
erforderlich ist, in einem Handle
gehalten.
Ein Beispiel wäre eine aufdringliche verknüpfte Liste angehaltener asynchroner Funktionsrahmen, die fortgesetzt werden sollen, wenn der Empfänger eine Benachrichtigung erhält, dass ein Dateideskriptor/-handle zum Schreiben/Lesen aus einem Dateideskriptor/-handle bereit ist.