Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-136763

Implement QRandomAccess(Async)File

XMLWordPrintable

    • Icon: Task Task
    • Resolution: Unresolved
    • Icon: P3: Somewhat important P3: Somewhat important
    • None
    • None
    • Core: I/O
    • None

      As discussed at the hacking day of Contributor Summit.

      Will serve as the basis for asynchronous file I/O (ie QTBUG-136764) => all backends need to be asynchronous.

      Not based on QIODevice, and will provide vectored read/writes (aka scatter/gather IO), the read/write requests are fulfilled fully asynchronously, using native APIs where available.

      Random notes:

      • Implement using io_uring on Linux
      • Look into ioringapi from Windows
        • Otherwise completion ports or overlapped io
      • Potentially use grand central dispatch on macOS, but better if it also works on other BSDs
      • QThreadPool based fallback for platforms with insufficient API or missing backend

      To be implemented as an internal detail at first before we cement it and make it public.

        For Gerrit Dashboard: QTBUG-136763
        # Subject Branch Project Status CR V

            manordheim Mårten Nordheim
            manordheim Mårten Nordheim
            Vladimir Minenko Vladimir Minenko
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:

                There are 2 open Gerrit changes