| 123456789101112131415161718192021222324252627282930313233343536373839 | #ifndef WIN32_WRAPPED_MUTEX_H#define WIN32_WRAPPED_MUTEX_H#include <Windows.h>/** * 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
 |