fix possible lock order problem
This commit is contained in:
@@ -367,10 +367,14 @@ void RageSound::SoundIsFinishedPlaying()
|
|||||||
{
|
{
|
||||||
if( !m_bPlaying )
|
if( !m_bPlaying )
|
||||||
return;
|
return;
|
||||||
m_Mutex.Lock();
|
|
||||||
|
|
||||||
|
/* Lock the mutex after calling UnregisterPlayingSound. We must not make driver
|
||||||
|
* calls with our mutex locked (driver mutex < sound mutex). Nobody else will
|
||||||
|
* see our sound as not playing until we set playing to false. */
|
||||||
m_iStoppedSourceFrame = (int) GetPositionSecondsInternal();
|
m_iStoppedSourceFrame = (int) GetPositionSecondsInternal();
|
||||||
|
|
||||||
|
m_Mutex.Lock();
|
||||||
|
|
||||||
// LOG->Trace("set playing false for %p (SoundIsFinishedPlaying) (%s)", this, this->GetLoadedFilePath().c_str());
|
// LOG->Trace("set playing false for %p (SoundIsFinishedPlaying) (%s)", this, this->GetLoadedFilePath().c_str());
|
||||||
m_bPlaying = false;
|
m_bPlaying = false;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user