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

Reply via email to