#include "il2cpp-config.h"
|
|
#if IL2CPP_THREADS_PTHREAD && !IL2CPP_TINY_WITHOUT_DEBUGGER
|
|
#include "EventImpl.h"
|
#include "PosixHelpers.h"
|
|
namespace il2cpp
|
{
|
namespace os
|
{
|
EventImpl::EventImpl(bool manualReset, bool signaled)
|
: posix::PosixWaitObject(manualReset ? kManualResetEvent : kAutoResetEvent)
|
{
|
if (signaled)
|
m_Count = 1;
|
}
|
|
ErrorCode EventImpl::Set()
|
{
|
posix::PosixAutoLock lock(&m_Mutex);
|
|
m_Count = 1;
|
|
if (HaveWaitingThreads())
|
pthread_cond_broadcast(&m_Condition);
|
|
return kErrorCodeSuccess;
|
}
|
|
ErrorCode EventImpl::Reset()
|
{
|
posix::PosixAutoLock lock(&m_Mutex);
|
m_Count = 0;
|
|
return kErrorCodeSuccess;
|
}
|
}
|
}
|
|
#endif
|