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
内。
一个示例是挂起的异步功能帧的侵入式链表,这些挂起的异步功能帧将在接收到文件描述符/句柄准备好写入/读取的通知时恢复。