Repo created

This commit is contained in:
Fr4nz D13trich 2025-11-22 13:58:55 +01:00
parent 4af19165ec
commit 68073add76
12458 changed files with 12350765 additions and 2 deletions

View file

@ -0,0 +1,40 @@
#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>;
explicit DeferredTask(Duration const & duration);
~DeferredTask();
void Drop();
template <typename Fn>
void RestartWith(Fn const && fn)
{
{
std::unique_lock 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