]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/commands/DaemonCommand.java
Implement jsonRpc command
[signal-cli] / src / main / java / org / asamk / signal / commands / DaemonCommand.java
index 7988c8efcdc44d1faff1a09a91d05e8c51e771d9..7b6f243d74c24cdc66d6378b3ebd4cd7217c25c9 100644 (file)
@@ -123,14 +123,17 @@ public class DaemonCommand implements MultiLocalCommand {
         logger.info("Exported dbus object: " + objectPath);
 
         final var thread = new Thread(() -> {
         logger.info("Exported dbus object: " + objectPath);
 
         final var thread = new Thread(() -> {
-            while (true) {
+            while (!Thread.interrupted()) {
                 try {
                     final var receiveMessageHandler = outputWriter instanceof JsonWriter
                             ? new JsonDbusReceiveMessageHandler(m, (JsonWriter) outputWriter, conn, objectPath)
                             : new DbusReceiveMessageHandler(m, (PlainTextWriter) outputWriter, conn, objectPath);
                     m.receiveMessages(1, TimeUnit.HOURS, false, ignoreAttachments, receiveMessageHandler);
                 try {
                     final var receiveMessageHandler = outputWriter instanceof JsonWriter
                             ? new JsonDbusReceiveMessageHandler(m, (JsonWriter) outputWriter, conn, objectPath)
                             : new DbusReceiveMessageHandler(m, (PlainTextWriter) outputWriter, conn, objectPath);
                     m.receiveMessages(1, TimeUnit.HOURS, false, ignoreAttachments, receiveMessageHandler);
+                    break;
                 } catch (IOException e) {
                     logger.warn("Receiving messages failed, retrying", e);
                 } catch (IOException e) {
                     logger.warn("Receiving messages failed, retrying", e);
+                } catch (InterruptedException ignored) {
+                    break;
                 }
             }
         });
                 }
             }
         });