OpenTTD
Public Member Functions | Private Attributes
ThreadMutex_Win32 Class Reference

Win32 thread version of ThreadMutex. More...

Inheritance diagram for ThreadMutex_Win32:
ThreadMutex

Public Member Functions

void BeginCritical (bool allow_recursive=false)
 Begin the critical section.
void EndCritical (bool allow_recursive=false)
 End of the critical section.
void WaitForSignal ()
 Wait for a signal to be send.
void SendSignal ()
 Send a signal and wake the 'thread' that was waiting for it.
- Public Member Functions inherited from ThreadMutex
virtual ~ThreadMutex ()
 Virtual Destructor to avoid compiler warnings.

Private Attributes

CRITICAL_SECTION critical_section
 The critical section we would enter.
HANDLE event
 Event for signalling.
uint recursive_count
 Recursive lock count.

Additional Inherited Members

- Static Public Member Functions inherited from ThreadMutex
static ThreadMutexNew ()
 Create a new mutex.

Detailed Description

Win32 thread version of ThreadMutex.

Definition at line 116 of file thread_win32.cpp.

Member Function Documentation

void ThreadMutex_Win32::BeginCritical ( bool  allow_recursive = false)
inlinevirtual

Begin the critical section.

Parameters
allow_recursiveWhether recursive locking is intentional. If false, NOT_REACHED() will be called when the mutex is already locked by the current thread.

Implements ThreadMutex.

Definition at line 135 of file thread_win32.cpp.

References critical_section, and recursive_count.

Referenced by WaitForSignal().

void ThreadMutex_Win32::EndCritical ( bool  allow_recursive = false)
inlinevirtual

End of the critical section.

Parameters
allow_recursiveWhether recursive unlocking is intentional. If false, NOT_REACHED() will be called when the mutex was locked more than once by the current thread.

Implements ThreadMutex.

Definition at line 143 of file thread_win32.cpp.

References critical_section, and recursive_count.

Referenced by WaitForSignal().

void ThreadMutex_Win32::WaitForSignal ( )
inlinevirtual

Wait for a signal to be send.

Precondition
You must be in the critical section.
Note
While waiting the critical section is left.
Postcondition
You will be in the critical section.

Implements ThreadMutex.

Definition at line 150 of file thread_win32.cpp.

References BeginCritical(), EndCritical(), event, and recursive_count.


The documentation for this class was generated from the following file: