The system facility a scheduler waits on: IO_URING or EPOLL on Linux, KQUEUE on macOS, IOCP or IORING on Windows. The
scheduler picks the best one the machine offers; the JAI_IO_BACKEND environment variable names another (io_uring, epoll,
kqueue, iocp, ioring). NONE is a system with no IO, where every operation fails with .UNSUPPORTED. Behaviour seen
through the API is the same on all of them; they differ in speed and in the kernel versions they need.
Members
- NONE
- No IO on this system: every operation fails with
.UNSUPPORTED. - IO_URING
- EPOLL
- KQUEUE
- IOCP
- Windows: completion ports for sockets and files.
- IORING
- Windows 11 22H2 and newer: completion ports for sockets, an IoRing for files.