Skip to content

Latest commit

 

History

History

src

felspar-io Implementation

The contains three implementations:

  • POSIX using poll
  • Windows using WSAPoll
  • Linux's io_uring

The poll and WSAPoll are similar, but not identical. The main part of the implementation is in:

  • poll.hpp -- Common header containing completion tracking and common retry and cancellation code.
  • poll.iops.cpp -- Implementation of the individual IOP APIs.
  • poll.warden.cpp -- Implementation of the poll loop itself together with other code needed to have everything work.

The differences between poll and WSAPoll are handled through #if blocks.

There is a separate implementation io_uring in the following files:

Other files

  • convenience.cpp -- Contains a few helpers.
  • posix.cpp -- Contains wrappers for some common POSIX APIs.
  • tls.cpp -- Contains an implementation of TLS using OpenSSL.
  • warden.cpp -- Common warden code (creating sockets and pipes).