isle-portable/LEGO1/mxsemaphore.h

24 lines
405 B
C
Raw Normal View History

#ifndef MX_SEMAPHORE_H
#define MX_SEMAPHORE_H
#include "mxtypes.h"
2023-10-24 19:38:27 -04:00
#include <windows.h>
2023-10-24 19:38:27 -04:00
class MxSemaphore {
public:
2023-10-24 19:38:27 -04:00
MxSemaphore();
2023-10-24 19:38:27 -04:00
// Inlined only, no offset
~MxSemaphore() { CloseHandle(m_hSemaphore); }
2023-10-24 19:38:27 -04:00
virtual MxResult Init(MxU32 p_initialCount, MxU32 p_maxCount);
2023-10-24 19:38:27 -04:00
void Wait(MxU32 p_timeoutMS);
void Release(MxU32 p_releaseCount);
private:
2023-10-24 19:38:27 -04:00
HANDLE m_hSemaphore;
};
#endif // MX_SEMAPHORE_H