From e56b64dd48b1c7e66e32b38c6b5e634db15703f5 Mon Sep 17 00:00:00 2001 From: David Roden Date: Sat, 25 Jan 2025 10:08:14 +0100 Subject: [PATCH] =?utf8?q?=F0=9F=9A=B8=20Allow=20stopping=20the=20server?= =?utf8?q?=20cleanly?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- server/src/main/java/de/qsheltier/msta/Server.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/server/src/main/java/de/qsheltier/msta/Server.java b/server/src/main/java/de/qsheltier/msta/Server.java index c11c9ff..e5b02a5 100644 --- a/server/src/main/java/de/qsheltier/msta/Server.java +++ b/server/src/main/java/de/qsheltier/msta/Server.java @@ -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); } -- 2.7.4