aboutsummaryrefslogtreecommitdiff
path: root/zenserver-test/zenserver-test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'zenserver-test/zenserver-test.cpp')
-rw-r--r--zenserver-test/zenserver-test.cpp20
1 files changed, 20 insertions, 0 deletions
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 <map>
#include <random>
#include <span>
+#include <thread>
#include <unordered_map>
#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 <typename... T>
+ static void parallel_invoke(T&&... t)
+ {
+ constexpr size_t NumTs = sizeof...(t);
+ std::thread Threads[NumTs] = {
+ std::thread(std::forward<T>(t))...,
+ };
+
+ for (std::thread& Thread : Threads)
+ {
+ Thread.join();
+ }
+ }
+};
+#endif
+
/*
___ ___ _________ _________ ________ ________ ___ ___ _______ ________ _________