X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/c9f5550d1821ee99879c75db124baf46642fd846..a9a6edaf3ff8ac81b1229db294d738f624688a0d:/src/main/java/org/asamk/signal/commands/DaemonCommand.java diff --git a/src/main/java/org/asamk/signal/commands/DaemonCommand.java b/src/main/java/org/asamk/signal/commands/DaemonCommand.java index 5045db9a..02063b87 100644 --- a/src/main/java/org/asamk/signal/commands/DaemonCommand.java +++ b/src/main/java/org/asamk/signal/commands/DaemonCommand.java @@ -120,7 +120,10 @@ public class DaemonCommand implements MultiLocalCommand { private Thread run( DBusConnection conn, String objectPath, Manager m, OutputWriter outputWriter, boolean ignoreAttachments ) throws DBusException { - conn.exportObject(new DbusSignalImpl(m, objectPath)); + final var signal = new DbusSignalImpl(m, conn, objectPath); + conn.exportObject(signal); + final var initThread = new Thread(signal::initObjects); + initThread.start(); logger.info("Exported dbus object: " + objectPath); @@ -136,6 +139,11 @@ public class DaemonCommand implements MultiLocalCommand { logger.warn("Receiving messages failed, retrying", e); } } + try { + initThread.join(); + } catch (InterruptedException ignored) { + } + signal.close(); }); thread.start();