#include "Core/Threads.h" #include #include #include #include using namespace uLib; void TestTaskTeam() { std::cout << "Testing Task and Team..." << std::endl; std::atomic counter(0); auto task_func = [&]() { counter++; Thread::Sleep(10); }; Team team(4); std::cout << " Team size: " << team.GetSize() << std::endl; #ifdef _OPENMP #pragma omp parallel #pragma omp single #endif { for (int i = 0; i < 20; ++i) { team.Run(new Task(task_func)); } team.Wait(); } assert(counter == 20); std::cout << " Passed (counter: " << counter << ")." << std::endl; } int main() { TestTaskTeam(); std::cout << "All Team tests passed!" << std::endl; return 0; }