It looks like this function is never called, anywhere. The thing is, that whenever a ControlObject is changed (once ControlObject::sync() is called, i.e. every latency period), any ControlObjectThread associated with it receives a call to 'setExtern(value)'. This locks a static ControlObjectThread lock, and adds the ControlObjectThread to a static queue.
ControlObjectThread::update(), removes an element from this static queue, and instructs it to emit valueChanged(). But it's never called. The result is that this queue just constantly grows in value as people use Mixxx. It doesn't grow too rapidly, since it's only updated every time a ControlObjectThread is used (not a ControlObjectThreadMain). More annoyingly, this static mutex gets locked every time. There really won't be much contention on the lock, since the only locker is setExtern, and every setExtern call is made sequentially from updateProxies(), which is in turn only usually called by ControlObject::sync(). Does anybody care if I dike this stuff out of ControlObjectThread? You'd think we'd have noticed that ControlObjectThread's never emit valueChanged() -- though I just checked and it looks like we only use ControlObjectThread in a few threads : vinyl control, reader, and the MIDI script engine -- and none of those connect valueChanged to anything. Cheers, RJ ------------------------------------------------------------------------------ _______________________________________________ Mixxx-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mixxx-devel
