blob: cda7e89615e8589cd7049612f1896cde51e2e59d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#include "Thread.h"
#include "Mutex.h"
#include "../Utilities/Type.h"
Mutex::Mutex()
{
m_Handle = ::CreateMutex(NULL, FALSE, NULL);
if (!m_Handle)
throw ThreadException("Cant use win32 mutex.");
}
Mutex::~Mutex()
{
::CloseHandle(m_Handle);
m_Handle = NULL;
}
void Mutex::LockSelf()
{
::WaitForSingleObject(m_Handle, (~(uint32)0));
}
void Mutex::UnlockSelf()
{
::ReleaseMutex(m_Handle);
}
|