Atmosphere/mesosphere/source/processes/KReadableEvent.cpp
2019-06-03 17:41:03 -07:00

48 lines
846 B
C++

#include <mesosphere/processes/KWritableEvent.hpp>
#include <mesosphere/processes/KReadableEvent.hpp>
#include <mesosphere/processes/KEvent.hpp>
#include <mesosphere/threading/KScheduler.hpp>
namespace mesosphere
{
bool KReadableEvent::IsSignaled() const
{
return this->isSignaled;
}
KReadableEvent::~KReadableEvent()
{
}
Result KReadableEvent::Signal()
{
KScopedCriticalSection criticalSection{};
if (!this->isSignaled) {
this->isSignaled = true;
NotifyWaiters();
}
return ResultSuccess();
}
Result KReadableEvent::Clear()
{
Reset();
return ResultSuccess();
}
Result KReadableEvent::Reset()
{
KScopedCriticalSection criticalSection{};
if (this->isSignaled) {
this->isSignaled = false;
return ResultSuccess();
}
return ResultKernelInvalidState();
}
}