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.