#pragma once // SlimLock.h #include #include #pragma warning (disable : 4800) class SlimLock { public: SlimLock(); void lock(); void unlock(); bool trylock(); ~SlimLock(); private: CRITICAL_SECTION cs; }; inline SlimLock::SlimLock() { InitializeCriticalSection(&cs); } inline void SlimLock::lock() { EnterCriticalSection(&cs); } inline void SlimLock::unlock() { LeaveCriticalSection(&cs); } inline bool SlimLock::trylock() { return static_cast(TryEnterCriticalSection(&cs)); } inline SlimLock::~SlimLock() { DeleteCriticalSection(&cs); }