mirror of
https://github.com/LMMS/lmms.git
synced 2026-03-10 18:19:42 -04:00
Rough fix for freeze-up bug
Added startJobs() to the waitForJobs() loop, and don't give up in masterMix() until status of master channel is Done.
This commit is contained in:
@@ -620,7 +620,7 @@ public:
|
||||
m->m_workers[m->m_numWorkers]->processJobQueue();
|
||||
while( s_jobQueue.itemsDone < s_jobQueue.queueSize )
|
||||
{
|
||||
SPINLOCK_PAUSE();
|
||||
startJobs();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -492,7 +492,10 @@ void FxMixer::masterMix( sampleFrame * _buf )
|
||||
// to be processed.
|
||||
MixerWorkerThread::resetJobQueue();
|
||||
addChannelLeaf( 0, _buf );
|
||||
MixerWorkerThread::startAndWaitForJobs();
|
||||
while( m_fxChannels[0]->m_state != ThreadableJob::Done )
|
||||
{
|
||||
MixerWorkerThread::startAndWaitForJobs();
|
||||
}
|
||||
|
||||
memcpy( _buf, m_fxChannels[0]->m_buffer, sizeof( sampleFrame ) * fpp );
|
||||
|
||||
|
||||
Reference in New Issue
Block a user