/
githubmirror
/
omim
Обзор
Документация
Войти
/
githubmirror
/
omim
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
py-modules-0.2.10
base/deferred_task.hpp
40 строк
676 B
Maxim Pimenov
[base] Replaced the namespace my with base.
18 сен 2018, 14:46
18 сен 2018, 14:46
412387c
Код
Авторство
О чём код?
#pragma once #include "base/thread.hpp" #include <chrono> #include <condition_variable> #include <functional> #include <mutex> namespace base { class DeferredTask { public: using Duration = std::chrono::duration<double>; DeferredTask(Duration const & duration); ~DeferredTask(); void Drop(); template <typename Fn> void RestartWith(Fn const && fn) { { std::unique_lock<std::mutex> l(m_mutex); m_fn = fn; } m_cv.notify_one(); } private: threads::SimpleThread m_thread; std::mutex m_mutex; std::condition_variable m_cv; std::function<void()> m_fn; Duration m_duration; bool m_terminate = false; }; } // namespace base