Common: Port Event class from YBaseLib over

This commit is contained in:
Connor McLaughlin
2020-04-05 22:57:35 +10:00
parent 70ccdcfc30
commit abb87f497f
5 changed files with 174 additions and 0 deletions

30
src/common/event.h Normal file
View File

@ -0,0 +1,30 @@
#pragma once
#include "types.h"
namespace Common {
class Event
{
public:
Event(bool auto_reset = false);
~Event();
void Reset();
void Signal();
void Wait();
bool TryWait(u32 timeout_in_ms);
static void WaitForMultipleEvents(Event** events, u32 num_events);
private:
#ifdef WIN32
void* m_event_handle;
#elif defined(__linux__) || defined(__APPLE__)
int m_pipe_fds[2];
bool m_auto_reset;
#else
#error Unknown platform.
#endif
};
} // namespace Common