diff options
| author | Martin Ridgers <[email protected]> | 2021-11-12 15:09:55 +0100 |
|---|---|---|
| committer | Martin Ridgers <[email protected]> | 2021-11-15 09:08:18 +0100 |
| commit | 620d00b775414530cb8f44be48717056718c4a1f (patch) | |
| tree | 99cc95e66b67034ae89b70822ed9c4daad0b813a /zenserver-test/zenserver-test.cpp | |
| parent | Fixed "move prevents copy elision" compiler warning (diff) | |
| download | zen-620d00b775414530cb8f44be48717056718c4a1f.tar.xz zen-620d00b775414530cb8f44be48717056718c4a1f.zip | |
Implemented a basic Concurrency::parallel_invoke() for Linux and Mac
Diffstat (limited to 'zenserver-test/zenserver-test.cpp')
| -rw-r--r-- | zenserver-test/zenserver-test.cpp | 20 |
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 + /* ___ ___ _________ _________ ________ ________ ___ ___ _______ ________ _________ |