From f751adac6aa4be9e8eff6a1bcf0d5a978bd35c4e Mon Sep 17 00:00:00 2001 From: Florian Schmaus <flow@cs.fau.de> Date: Sun, 13 Feb 2022 11:20:24 +0100 Subject: [PATCH] [SimplestFibTest] Run Runtime destructor and allow worker count reduction --- tests/SimplestFibTest.cpp | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/tests/SimplestFibTest.cpp b/tests/SimplestFibTest.cpp index b0ef2db7..59747b7b 100644 --- a/tests/SimplestFibTest.cpp +++ b/tests/SimplestFibTest.cpp @@ -1,5 +1,6 @@ // SPDX-License-Identifier: LGPL-3.0-or-later -// Copyright © 2020 Florian Schmaus +// Copyright © 2020-2022 Florian Schmaus +#include <algorithm> #include <cstdlib> // for abort, exit, EXIT_SUCCESS #include <iostream> // for operator<<, basic_ostream::o... @@ -74,24 +75,27 @@ static void fibKickoff() { sem.wait(); std::cout << "fib(" << fibNum << ") = " << result << std::endl; - exit(EXIT_SUCCESS); + Runtime::getRuntime()->initiateTermination(); } auto main(UNUSED_ARG int argc, UNUSED_ARG char* argv[]) -> int { - // const unsigned nthreads = std::thread::hardware_concurrency(); - const unsigned nthreads = 2; + const workerid_t defaultWorkerCount = Runtime::getDefaultWorkerCount(); + const workerid_t maxWorkerCount = 2; + const workerid_t nthreads = std::min(maxWorkerCount, defaultWorkerCount); std::cout << "Number of threads: " << nthreads << std::endl; - Runtime runtime(nthreads); + { + Runtime runtime(nthreads); - Fiber* fibFiber = Fiber::from(&fibKickoff); + Fiber* fibFiber = Fiber::from(&fibKickoff); - std::cout << "Just alloacted alpha fiber at " << fibFiber << std::endl; + std::cout << "Just alloacted alpha fiber at " << fibFiber << std::endl; - runtime.scheduleFromAnywhere(*fibFiber); + runtime.scheduleFromAnywhere(*fibFiber); - runtime.waitUntilFinished(); + runtime.waitUntilFinished(); + } return 0; } -- GitLab