Comment 1 for bug 1422183

Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

Could you printline calls to addSignalQualityListener / removeSignalQualityListener and startTimer/killTimer/timerEvent calls in VinylControlManager?

WSpinny registers itself on showEvent and unregisters itself on hideEvent. If there are no signal listeners registered with VinylControlManager then it stops reading from the signal quality FIFO and updating listeners.

Since that log message is spewing the VinylControlProcessor clearly believes signal quality reporting is still enabled. If everything was working properly VinylControlProcessor would still be reading from the FIFO on a timer but since the FIFO is overflowing that suggests either its timer is not active (which should in turn mean no signal quality listeners are active) or its timer is not firing frequently enough to process incoming quality reports (unlikely).

add/remove/show/hide/timer events all (should be) in the main thread so it's probably not a concurrency issue

Possible causes:
- Our volatile bool VinylControlProcessor::m_bReportSignalQuality isn't working as intended and the processors are not getting the message to stop writing signal quality reports.
- Some logic error with how WSpinny and VinylSignalWidget register/unregister themselves.
- Something else? The manager's timer event shouldn't be affected by being off screen or not... it would be very strange (and other stuff would be broken) if Qt/X11 stopped servicing timers for off-screen windows.