#ifndef WIN32_WRAPPED_MUTEX_H #define WIN32_WRAPPED_MUTEX_H #include /** * Wraps a windows mutex. * Header only since all the methods call one function, we want them to be inlined **/ class WrappedMutex { public: WrappedMutex() { this->_mutex = CreateMutex( NULL, // default security attributes FALSE, // initially not owned NULL); // unnamed mutex } ~WrappedMutex() { CloseHandle(_mutex); } void lock() { WaitForSingleObject(_mutex, INFINITE); } void unlock() { ReleaseMutex(_mutex); } private: HANDLE _mutex; }; #endif