Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

File I/O for Linux #160

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open

File I/O for Linux #160

wants to merge 4 commits into from

Conversation

GIGte
Copy link

@GIGte GIGte commented Aug 27, 2020

This uses io_uring API. To get things working you need a fairly recent kernel (at least version 5.6).

Why io_uring: Making a comparable implementation for older versions of Linux kernel using a different API seems troublesome. For example, epoll only works well with sockets, and Linux AIO requires O_DIRECT flag (no caching and needs buffer alignment) when opening files. Also Linux AIO has no real support for anything socket-specific.

This pull request includes:

  • Scheduling operations with io_service.
  • File read, write & cancel.

It does not include:

  • Scheduling with timer.
  • Sockets.

I also updated CMake files from #158 inside a separate branch in my repository to reflect the additions. This might be useful for someone.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant