monitor and threads

This commit is contained in:
AndreaRigoni
2026-03-25 11:04:37 +00:00
parent 0c8ef7337c
commit a467b7385b
10 changed files with 390 additions and 1 deletions

View File

@@ -0,0 +1,40 @@
#include "Core/Threads.h"
#include <iostream>
#include <atomic>
#include <cassert>
#include <vector>
using namespace uLib;
void TestTaskTeam() {
std::cout << "Testing Task and Team..." << std::endl;
std::atomic<int> 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;
}