diff --git a/addons/pvr.tvh/src/AsyncState.cpp b/addons/pvr.tvh/src/AsyncState.cpp index b0747b8..dd8ee4c 100644 --- a/addons/pvr.tvh/src/AsyncState.cpp +++ b/addons/pvr.tvh/src/AsyncState.cpp @@ -33,6 +33,7 @@ void AsyncState::SetState(eAsyncState state) { CLockObject lock(m_mutex); m_state = state; + m_condition.Signal(); } bool AsyncState::WaitForState(eAsyncState state, int timeoutMs /* = -1*/) @@ -44,8 +45,9 @@ bool AsyncState::WaitForState(eAsyncState state, int timeoutMs /* = -1*/) timeoutMs = g_iResponseTimeout * 1000; } - if (GetState() < state) + CLockObject lock(m_mutex); + if (m_state < state) m_condition.Wait(m_mutex, timeoutMs); - return GetState() >= state; + return m_state >= state; }