/
githubmirror
/
PowerToys
Обзор
Документация
Войти
/
githubmirror
/
PowerToys
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/common/utils/EventLocker.h
62 строки
1 KB
Kai Tao
UT: Add ut to protect common utils codes (#45290)
03 фев 2026, 10:12
Не верифицирован
03 фев 2026, 10:12
27ba536
Код
Авторство
О чём код?
#include <windows.h> #include <string> class EventLocker { public: EventLocker(HANDLE h) { eventHandle = h; SetEvent(eventHandle); } static std::optional<EventLocker> Get(std::wstring eventName) { EventLocker locker(eventName); if (!locker.eventHandle) { return {}; } return locker; } EventLocker(EventLocker& e) = delete; EventLocker& operator=(EventLocker& e) = delete; EventLocker(EventLocker&& e) noexcept { this->eventHandle = e.eventHandle; e.eventHandle = nullptr; } EventLocker& operator=(EventLocker&& e) noexcept { this->eventHandle = e.eventHandle; e.eventHandle = nullptr; return *this; } ~EventLocker() { if (eventHandle) { ResetEvent(eventHandle); CloseHandle(eventHandle); eventHandle = nullptr; } } private: EventLocker(std::wstring eventName) { eventHandle = CreateEvent(nullptr, true, false, eventName.c_str()); if (!eventHandle) { return; } SetEvent(eventHandle); } HANDLE eventHandle; };