better exit
This commit is contained in:
@@ -6,6 +6,11 @@ import java.util.Scanner;
|
||||
import java.util.function.Function;
|
||||
|
||||
public class Main {
|
||||
/**
|
||||
* Flag to indicate whether the application is running or not.
|
||||
*/
|
||||
private static boolean isRunning = true;
|
||||
|
||||
/**
|
||||
* Counter to assign unique IDs to each calculation thread.
|
||||
*/
|
||||
@@ -23,7 +28,7 @@ public class Main {
|
||||
|
||||
var scanner = new Scanner(System.in);
|
||||
|
||||
while (true) {
|
||||
while (isRunning) {
|
||||
System.out.println("Enter desired command (start <e>, stop <n>, await <n>, exit):");
|
||||
var input = scanner.nextLine().trim();
|
||||
var command = input.split(" ");
|
||||
@@ -129,6 +134,14 @@ public class Main {
|
||||
private static void handleExitCommand() {
|
||||
System.out.println("Shutting down...");
|
||||
threads.values().forEach(CalculationThread::interrupt);
|
||||
System.exit(0);
|
||||
|
||||
for (var thread : threads.values()) {
|
||||
try {
|
||||
thread.join();
|
||||
} catch (InterruptedException ignored) {
|
||||
}
|
||||
}
|
||||
|
||||
isRunning = false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user