OpenBarnyard
 
Loading...
Searching...
No Matches
TMutex_Win.cpp
Go to the documentation of this file.
1#include "ToshiPCH.h"
2#include "TMutex_Win.h"
3
4#include <windows.h>
5
6//-----------------------------------------------------------------------------
7// Enables memory debugging.
8// Note: Should be the last include!
9//-----------------------------------------------------------------------------
10#include "Core/TMemoryDebugOn.h"
11
13
17
19{
20 Destroy();
21}
22
23// $Barnyard: FUNCTION 006bb660
25{
26 m_Handle = CreateMutexA( NULL, FALSE, NULL );
27 return TTRUE;
28}
29
30// $Barnyard: FUNCTION 006bb680
32{
33 BOOL result = CloseHandle( m_Handle );
34 m_Handle = NULL;
35
36 return result;
37}
38
40{
41 m_Handle = mutex.m_Handle;
42 return *this;
43}
44
45TMutex& TMutex::operator=( void* handle )
46{
47 m_Handle = handle;
48 return *this;
49}
50
51// $Barnyard: FUNCTION 006bb6e0
53{
54 return ReleaseMutex( m_Handle );
55}
56
57// $Barnyard: FUNCTION 006bb6a0
58TBOOL TMutex::Lock( FLAG a_eFlags /*= FLAG_NONE */ )
59{
60 DWORD waitForMs = ( a_eFlags & FLAG_NO_WAIT ) ? 0 : INFINITE;
61 DWORD result = WaitForSingleObject( m_Handle, waitForMs );
62
63 return result == WAIT_OBJECT_0;
64}
65
#define TOSHI_NAMESPACE_START
Definition Defines.h:47
#define TOSHI_NAMESPACE_END
Definition Defines.h:50
#define TTRUE
Definition Typedefs.h:25
bool TBOOL
Definition Typedefs.h:6
TMutex & operator=(const TMutex &mutex)
TBOOL Lock(FLAG a_eFlags=FLAG_NONE)
TBOOL Create()
TBOOL Destroy()
@ FLAG_NO_WAIT
Definition TMutex_Win.h:11
TBOOL Unlock()