Use boost::asio for asynchronous processing

This commit is contained in:
Dan Paulat 2022-05-28 14:37:39 -05:00
parent 09064c0be0
commit bb7793d309
4 changed files with 57 additions and 3 deletions

View file

@ -1,15 +1,17 @@
#include <future>
#include <boost/asio/io_context.hpp>
#include <boost/asio/post.hpp>
namespace scwx
{
namespace util
{
boost::asio::io_context& io_context();
template<class F>
void async(F&& f)
{
auto future = std::make_shared<std::future<void>>();
*future = std::async(std::launch::async, [future, f]() { f(); });
boost::asio::post(io_context(), f);
}
} // namespace util