/
briw
/
futureTech
Обзор
Документация
Войти
/
briw
/
futureTech
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
node_modules/@parcel/watcher/src/Signal.hh
46 строк
816 B
Briw
Structure
25 окт 2025, 03:14
25 окт 2025, 03:14
0aaa22e
Код
Авторство
О чём код?
#ifndef SIGNAL_H #define SIGNAL_H #include <mutex> #include <condition_variable> class Signal { public: Signal() : mFlag(false), mWaiting(false) {} void wait() { std::unique_lock<std::mutex> lock(mMutex); while (!mFlag) { mWaiting = true; mCond.wait(lock); } } std::cv_status waitFor(std::chrono::milliseconds ms) { std::unique_lock<std::mutex> lock(mMutex); return mCond.wait_for(lock, ms); } void notify() { std::unique_lock<std::mutex> lock(mMutex); mFlag = true; mCond.notify_all(); } void reset() { std::unique_lock<std::mutex> lock(mMutex); mFlag = false; mWaiting = false; } bool isWaiting() { return mWaiting; } private: bool mFlag; bool mWaiting; std::mutex mMutex; std::condition_variable mCond; }; #endif