
Public Methods | |
| PrivateConditionalContext (PrivateMutexContext *i_private_mutex) | |
| void | Post (int i_count) |
| void | Post () |
| void | PostAll () |
| void | Wait () |
| bool | Wait (const TimeInterval &i_time) |
| bool | Wait (const TimeStamp &i_time) |
| bool | Wait (DWORD i_val) |
| bool | WakeConditional () |
Public Attributes | |
| SpinLock | m_cond_spin_lock |
| PrivateMutexContext * | m_private_mutex |
| PrivateConditionalContext * | m_next_pcc |
| bool | m_in_list |
| HANDLE | m_wait_semaphore |
| int | m_waiter_count |
| int | m_wake_count |
| int | m_lock_transfer |
|
|
Constructor |
|
|
Post will notify one thread (if one is waiting) |
|
|
Post will notify one thread (if one is waiting) |
|
|
Post a notification to akk waiting threads. |
|
|
Wait will wait until another thread "notifies" (the thread calling Wait()). This may also time-out, however, the lock will be re-attained when Wait returns.
|
|
|
Wait will wait until another thread "notifies" (the thread calling Wait()).
|
|
|
Wait will wait until another thread "notifies" (the thread calling Wait()).
|
|
|
Wait will wait until another thread "notifies" this thread (the thread calling Wait()).
|
|
|
WakeConditional is called from the unlock routine of the m_private_mutex this is associated with.
|
|
|
m_cond_spin_lock is required here because the PrivateConditionalContext may be accessed by a thread waking up from a conditional variable timed wait. |
|
|
|
|
|
m_lock_transfer indicates that the main lock is being transferred to the thread that wakes up on this ConditionalContext. |
|
|
m_next_pcc is the nect conditional context associated with the mutex |
|
|
m_private_mutex is a link to the mutex associated with this context. |
|
|
This semaphore holds all waiting objects |
|
|
Number of threads that are currently waiting |
|
|
The count to wake-up the lock holder |
Generated for Austria by
and
MakeXS at Sun Oct 24 17:35:34 PDT 2004