mirror of
https://github.com/sle118/squeezelite-esp32.git
synced 2026-04-05 06:09:28 +01:00
40 lines
663 B
C++
40 lines
663 B
C++
#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
|