/*
* CriticalSection.h
* Copyright (c) 2011 Antillia.com TOSHIYUKI ARAI. ALL RIGHTS RESERVED.
*/
// SOL++2000
#pragma once
#include <sol\Object.h>
namespace SOL {
class CriticalSection :public Object {
private:
CRITICAL_SECTION cs;
public:
CriticalSection() {
::InitializeCriticalSection(&cs);
}
~CriticalSection() {
::DeleteCriticalSection(&cs);
}
void enter() {
::EnterCriticalSection(&cs);
}
// BOOL tryEnter() {
// return TryEnterCriticalSection(&cs);
// }
void leave() {
::LeaveCriticalSection(&cs);
}
};
}
|