From 620d00b775414530cb8f44be48717056718c4a1f Mon Sep 17 00:00:00 2001 From: Martin Ridgers Date: Fri, 12 Nov 2021 15:09:55 +0100 Subject: Implemented a basic Concurrency::parallel_invoke() for Linux and Mac --- zenserver-test/zenserver-test.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'zenserver-test/zenserver-test.cpp') diff --git a/zenserver-test/zenserver-test.cpp b/zenserver-test/zenserver-test.cpp index 1f42cbcd3..64da36a5f 100644 --- a/zenserver-test/zenserver-test.cpp +++ b/zenserver-test/zenserver-test.cpp @@ -45,6 +45,7 @@ ZEN_THIRD_PARTY_INCLUDES_END #include #include #include +#include #include #if ZEN_PLATFORM_WINDOWS @@ -70,6 +71,25 @@ ZEN_THIRD_PARTY_INCLUDES_END using namespace fmt::literals; using namespace std::literals; +#if ZEN_PLATFORM_LINUX || ZEN_PLATFORM_MACOS +struct Concurrency +{ + template + static void parallel_invoke(T&&... t) + { + constexpr size_t NumTs = sizeof...(t); + std::thread Threads[NumTs] = { + std::thread(std::forward(t))..., + }; + + for (std::thread& Thread : Threads) + { + Thread.join(); + } + } +}; +#endif + /* ___ ___ _________ _________ ________ ________ ___ ___ _______ ________ _________ -- cgit v1.2.3