Skip to content

WIP: IO support using io_uring

Florian Fischer requested to merge io_uring_network into master

Add AsyncLibrary providing IO operations which avoid the thread-blocking anomaly using the linux io_uring API. This MR makes !4 (closed) obsolete.

Fixes #2 (closed).

TODO:

  • Use a dedicated thread instead of the main thread maybe?
  • Overhaul SimpleDiskAndNetworkTest
  • Find and fix the memory leak
  • be competetive with burak's epoll implementation. Use !54 (merged) for a high performance IO implementation
  • Make API really asynchronous and return a future
  • Handle IO requests issued after IO subsystem is terminated
  • figure out how to gracefully shutdown
  • Don't unblock fibers on partial IO completion (what IO functions are feasable, recv(..., MSG_WAITALL))
  • Document exported functions
  • introduce timeouts to prevent denial-of-service by opening more connections than there are entries in the io_uring This is nonsense and not how io_uring works.
Edited by Florian Fischer

Merge request reports