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