OpenBarnyard
 
Loading...
Searching...
No Matches
TMutexLock.h
Go to the documentation of this file.
1#pragma once
2#include "TMutex.h"
3
4#define TMUTEX_LOCK_SCOPE( mutex ) TANONYMOUSVAR( Toshi::TMutexLock )( mutex )
5
7
9{
10public:
12 {
13 m_Mutex = TNULL;
14 }
15
17 {
18 Create( &mutex );
19 }
20
22 {
23 Create( mutex );
24 }
25
26 TMutexLock( const TMutexLock& other )
27 {
28 m_Mutex = other.m_Mutex;
29 }
30
32 {
33 Destroy();
34 }
35
36 // Locks the passed mutex
37 void Create( TMutex* mutex )
38 {
39 m_Mutex = mutex;
40 m_Mutex->Lock();
41 }
42
43 // Destroys the TMutexLock and TMutex
44 void Destroy()
45 {
46 if ( m_Mutex )
47 {
48 m_Mutex->Unlock();
49 m_Mutex = TNULL;
50 }
51 }
52
53public:
54 TMutexLock& operator=( const TMutexLock& mutexLock )
55 {
56 m_Mutex = mutexLock.m_Mutex;
57 return *this;
58 }
59
60private:
61 TMutex* m_Mutex;
62};
63
#define TOSHI_NAMESPACE_START
Definition Defines.h:47
#define TOSHI_NAMESPACE_END
Definition Defines.h:50
#define TNULL
Definition Typedefs.h:23
TBOOL Lock(FLAG a_eFlags=FLAG_NONE)
TMutexLock(TMutex &mutex)
Definition TMutexLock.h:16
TMutexLock(const TMutexLock &other)
Definition TMutexLock.h:26
void Destroy()
Definition TMutexLock.h:44
void Create(TMutex *mutex)
Definition TMutexLock.h:37
TMutexLock & operator=(const TMutexLock &mutexLock)
Definition TMutexLock.h:54
TMutexLock(TMutex *mutex)
Definition TMutexLock.h:21