🚸 Allow stopping the server cleanly
authorDavid Roden <github-a8in@qsheltier.de>
Sat, 25 Jan 2025 09:08:14 +0000 (10:08 +0100)
committerDavid Roden <github-a8in@qsheltier.de>
Sat, 25 Jan 2025 09:27:50 +0000 (10:27 +0100)
server/src/main/java/de/qsheltier/msta/Server.java

index c11c9ff..e5b02a5 100644 (file)
@@ -77,7 +77,7 @@ public class Server implements Closeable {
                var startLatch = new CountDownLatch(1);
                new Thread(() -> {
                        startLatch.countDown();
-                       while (true) {
+                       while (!closed.get()) {
                                try {
                                        try (var socket = serverSocket.accept()) {
                                                handleSocket(socket.getInputStream(), socket.getOutputStream());
@@ -97,6 +97,7 @@ public class Server implements Closeable {
         */
        @Override
        public void close() throws IOException {
+               closed.set(true);
                serverSocket.close();
        }
 
@@ -171,5 +172,6 @@ public class Server implements Closeable {
 
        private final ServerSocket serverSocket = new ServerSocket();
        private final Runnable shutdownHook;
+       private final AtomicBoolean closed = new AtomicBoolean(false);
 
 }