Eliminate a race condition.

This commit is contained in:
BusinessmanProgrammerSteve 2010-02-01 17:29:52 +00:00
parent 77b874c5d9
commit 8bc7f68edc
1 changed files with 3 additions and 3 deletions

View File

@ -1762,6 +1762,8 @@ AudioThread::ExitCode AudioThread::Entry()
{
while( !TestDestroy() )
{
// Set LoopActive outside the tests to avoid race condition
gAudioIO->mAudioThreadFillBuffersLoopActive = true;
if( gAudioIO->mAudioThreadShouldCallFillBuffersOnce )
{
gAudioIO->FillBuffers();
@ -1771,6 +1773,7 @@ AudioThread::ExitCode AudioThread::Entry()
{
gAudioIO->FillBuffers();
}
gAudioIO->mAudioThreadFillBuffersLoopActive = false;
#ifdef EXPERIMENTAL_MIDI_OUT
if( gAudioIO->mMidiStreamActive &&
@ -2123,8 +2126,6 @@ void AudioIO::FillBuffers()
{
unsigned int i;
gAudioIO->mAudioThreadFillBuffersLoopActive = true;
if( mPlaybackTracks.GetCount() > 0 )
{
// Though extremely unlikely, it is possible that some buffers
@ -2285,7 +2286,6 @@ void AudioIO::FillBuffers()
}
}
gAudioIO->mAudioThreadFillBuffersLoopActive = false;
//if ( mMidiStreamActive && mMidiPlaybackTracks.GetCount() > 0 )
//FillMidiBuffers();
}