diff options
Diffstat (limited to 'source/modules/asura-utils/threading/conditional.cpp')
-rw-r--r-- | source/modules/asura-utils/threading/conditional.cpp | 58 |
1 files changed, 29 insertions, 29 deletions
diff --git a/source/modules/asura-utils/threading/conditional.cpp b/source/modules/asura-utils/threading/conditional.cpp index eb26e82..e49bfde 100644 --- a/source/modules/asura-utils/threading/conditional.cpp +++ b/source/modules/asura-utils/threading/conditional.cpp @@ -6,8 +6,8 @@ namespace AsuraEngine { Conditional::Conditional() - : mWaiting(0) - , mSignals(0) + : m_Waiting(0) + , m_Signals(0) { } @@ -17,38 +17,38 @@ namespace AsuraEngine void Conditional::Signal() { - mMutex.Lock(); - if (mWaiting > mSignals) + m_Mutex.Lock(); + if (m_Waiting > m_Signals) { - ++mSignals; - signal(mWaitSem); - mMutex.Unlock(); - wait(mDoneSem); + ++m_Signals; + signal(m_WaitSem); + m_Mutex.Unlock(); + wait(m_DoneSem); } else { - mMutex.Unlock(); + m_Mutex.Unlock(); } } void Conditional::Broadcast() { - mMutex.Lock(); - if (mWaiting> mSignals) { + m_Mutex.Lock(); + if (m_Waiting> m_Signals) { int i, num_waiting; - num_waiting = (mWaiting - mSignals); - mSignals = mWaiting; + num_waiting = (m_Waiting - m_Signals); + m_Signals = m_Waiting; for (i = 0; i < num_waiting; ++i) { - signal(mWaitSem); + signal(m_WaitSem); } - mMutex.Unlock(); + m_Mutex.Unlock(); for (i = 0; i < num_waiting; ++i) { - wait(mDoneSem); + wait(m_DoneSem); } } else { - mMutex.Unlock(); + m_Mutex.Unlock(); } } @@ -57,27 +57,27 @@ namespace AsuraEngine { bool retval; - mMutex.Lock(); - ++mWaiting; - mMutex.Unlock(); + m_Mutex.Lock(); + ++m_Waiting; + m_Mutex.Unlock(); mutex->Unlock(); - retval = wait(mWaitSem, timeout); + retval = wait(m_WaitSem, timeout); - mMutex.Lock(); - if (mSignals > 0) { + m_Mutex.Lock(); + if (m_Signals > 0) { if (!retval) { - wait(mWaitSem); + wait(m_WaitSem); } - signal(mDoneSem); + signal(m_DoneSem); - --mSignals; + --m_Signals; } - --mWaiting; - mMutex.Unlock(); + --m_Waiting; + m_Mutex.Unlock(); - mMutex.Lock(); + m_Mutex.Lock(); return retval; } |