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