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

[WinRT/WASAPI] Not honoring thread affinity

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P2: Important
    • Resolution: Done
    • Affects Version/s: 5.7.0, 5.8.0 Alpha
    • Fix Version/s: 5.7.1, 5.8.0 Beta
    • Component/s: Multimedia
    • Labels:
      None
    • Environment:
      WinRT/UWP
    • Platform/s:
      WinRT
    • Commits:
      f92874545bbe79fa72eed773dabc49d109b7b6ca

      Description

      WASAPI is the only audio backend that completely ignores the QObject thread affinity and makes callbacks read to the QIODevice on a different thread from QAudioOutput::thread() / QIODevice::thread() causing heaps of potential thread corruption issues.

      The documentation makes no mention of this having thread safety issues nor do any of the other implementation.

      This could easily be fixed by using QWinEventNotifier to run the callbacks on the same thread as the QAudioOutput, but WinRT doesn't implement QWinEventNotifier even though it already watches events for timers.

      See suggestion QTBUG-55893.

        Attachments

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

          Activity

            People

            Assignee:
            mkalinow Maurice Kalinowski
            Reporter:
            kristjanbb Kristj√°n Birgisson
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Gerrit Reviews

                There are no open Gerrit changes