/*** Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: LSEvent.NT.cpp Date: 2021-10-1 Author: Reece ***/ #include #include "LSEvent.hpp" namespace Aurora::Loop { bool Event::Set() { return SetEvent(reinterpret_cast(this->handle)); } bool Event::Reset() { return ResetEvent(reinterpret_cast(this->handle)); } bool Event::IsSignaled() { return LSHandle::IsSignaled(); } ELoopSource Event::GetType() { return ELoopSource::eSourceEvent; } AUKN_SYM AuSPtr NewLSEvent(bool triggerd, bool atomicRelease, bool permitMultipleTriggers) { AuSPtr ret; auto mutex = CreateEvent(NULL, !atomicRelease, triggerd, NULL); if (mutex == INVALID_HANDLE_VALUE) { SysPushErrorGen("Out of OS resources?"); return {}; } if (!(ret = AuMakeShared(mutex))) { return {}; } return ret; } }