blob: 21343f96f60db28bc16fba745a6b13c20904effd [file] [log] [blame]
#pragma once
#include <boost/asio/io_context.hpp>
#include <boost/asio/spawn.hpp>
#include <boost/asio/steady_timer.hpp>
#include <chrono>
namespace utils
{
template <class F>
void makeDetachedTimer(boost::asio::io_context& ioc,
std::chrono::milliseconds delay, F&& fun)
{
auto timer = std::make_unique<boost::asio::steady_timer>(ioc);
timer->expires_after(delay);
timer->async_wait([timer = std::move(timer),
fun = std::move(fun)](boost::system::error_code ec) {
if (ec)
{
return;
}
fun();
});
}
} // namespace utils