From d4c12f3b092f30d6218f0c0a4c2eec2f619aaf96 Mon Sep 17 00:00:00 2001 From: hwinkel Date: Wed, 7 Jun 2023 22:46:40 +0200 Subject: [PATCH] ADD: added asyncworker to utilsfunctions --- include/SimCore/UtilFunctions.hpp | 32 +++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/include/SimCore/UtilFunctions.hpp b/include/SimCore/UtilFunctions.hpp index 10f5378..4305fcb 100644 --- a/include/SimCore/UtilFunctions.hpp +++ b/include/SimCore/UtilFunctions.hpp @@ -4,6 +4,9 @@ #include #include +#include +#include +#include namespace SimCore { @@ -25,4 +28,33 @@ namespace SimCore { }; + +class AsyncWorker { + std::atomic active{true}; + + public: + ~AsyncWorker(){ + stop(); + } + + void work(auto function) + { + active = true; + std::thread t([=,this]() { + while(active.load()) { + function(); + } + }); + t.detach(); + } + void stop() + { + active = false; + + } + +}; + + + } \ No newline at end of file