diff --git a/stepmania/src/RageThreads.cpp b/stepmania/src/RageThreads.cpp index 6b667a5b00..22bd3c5430 100644 --- a/stepmania/src/RageThreads.cpp +++ b/stepmania/src/RageThreads.cpp @@ -661,13 +661,13 @@ void RageSemaphore::Post() m_pSema->Post(); } -void RageSemaphore::Wait() +void RageSemaphore::Wait( bool bFailOnTimeout ) { retry: if( m_pSema->Wait() ) return; - if( Dialog::IsShowingDialog() ) + if( !bFailOnTimeout || Dialog::IsShowingDialog() ) goto retry; /* We waited too long. We're probably deadlocked, though unlike mutexes, we can't diff --git a/stepmania/src/RageThreads.h b/stepmania/src/RageThreads.h index b3ce4b39d6..b69c52b69e 100644 --- a/stepmania/src/RageThreads.h +++ b/stepmania/src/RageThreads.h @@ -129,7 +129,7 @@ public: CString GetName() const { return m_sName; } int GetValue() const; void Post(); - void Wait(); + void Wait( bool bFailOnTimeout=true ); bool TryWait(); private: