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

Implement QRandomAccess(Async)File

    XMLWordPrintable

Details

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

    Description

      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.

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              manordheim Mårten Nordheim
              manordheim Mårten Nordheim
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:

                Gerrit Reviews

                  There are no open Gerrit changes