Details
-
Bug
-
Resolution: Done
-
P2: Important
-
5.7.0, 5.8.0 Alpha
-
None
-
WinRT/UWP
-
-
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.