pike
1.0.0
用 Zig 編寫的最小跨平台高效能非同步 I/O 函式庫。
bind
、 listen
、 connect
、 accept
read
、 recv
、 recvFrom
write
、 send
、 sendTo
bind
、 listen
、 connect
、 accept
read
、 recv
、 recvFrom
write
、 send
、 sendTo
Notifier
通知 I/O 事件的完成,或已註冊文件描述符/句柄的讀取/寫入準備就緒。
如果Notifier
報告 I/O 事件的完成,則它被指定為環繞作業系統中基於前攝器的 I/O 通知層,例如 Windows 上的 I/O 完成連接埠。
如果Notifier
報告已註冊檔案描述符/句柄的讀取/寫入就緒情況,則它被指定為環繞作業系統中基於反應器的I/O 通知層,例如Linux 上的epoll 或基於Darwin 的作業系統上的kqueue 。
Notifier
的目的是在收到基於reactor/proactor 的I/O 事件的通知後,透過調度由線程池/調度程序(例如kprotty/zap)恢復的掛起的非同步函數幀來驅動非同步I/O 系統調用的執行。
Handle
的實作特定於Notifier
實現,儘管整體環繞並表示程式中的檔案描述符/句柄。
根據Notifier
實現, Handle
的實作屬於其中,透過Handle
驅動非同步 I/O 系統呼叫所需的狀態保存在Handle
內。
一個範例是掛起的非同步功能幀的侵入式鍊錶,這些掛起的非同步功能幀將在接收到檔案描述符/句柄準備好寫入/讀取的通知時恢復。