Add more informative thread names

This commit is contained in:
AsamK 2022-01-29 15:01:34 +01:00
parent 2e74acaabe
commit 380c892e24
4 changed files with 21 additions and 6 deletions

View file

@ -36,6 +36,7 @@ import java.nio.channels.SocketChannel;
import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Consumer;
public class DaemonCommand implements MultiLocalCommand, LocalCommand {
@ -234,8 +235,10 @@ public class DaemonCommand implements MultiLocalCommand, LocalCommand {
});
}
private static final AtomicInteger threadNumber = new AtomicInteger(0);
private void runSocket(final ServerSocketChannel serverChannel, Consumer<SocketChannel> socketHandler) {
new Thread(() -> {
final var thread = new Thread(() -> {
while (true) {
final SocketChannel channel;
final String clientString;
@ -250,16 +253,20 @@ public class DaemonCommand implements MultiLocalCommand, LocalCommand {
}
break;
}
new Thread(() -> {
final var connectionThread = new Thread(() -> {
try (final var c = channel) {
socketHandler.accept(c);
logger.info("Connection closed: " + clientString);
} catch (IOException e) {
logger.warn("Failed to close channel", e);
}
}).start();
});
connectionThread.setName("daemon-connection-" + threadNumber.getAndIncrement());
connectionThread.start();
}
}).start();
});
thread.setName("daemon-listener");
thread.start();
}
private SignalJsonRpcDispatcherHandler getSignalJsonRpcDispatcherHandler(
@ -367,6 +374,7 @@ public class DaemonCommand implements MultiLocalCommand, LocalCommand {
final var signal = new DbusSignalImpl(m, conn, objectPath, noReceiveOnStart);
conn.exportObject(signal);
final var initThread = new Thread(signal::initObjects);
initThread.setName("dbus-init");
initThread.start();
logger.debug("Exported dbus object: " + objectPath);

View file

@ -96,14 +96,16 @@ public class DbusSignalControlImpl implements org.asamk.SignalControl {
public String link(final String newDeviceName) throws Error.Failure {
try {
final URI deviceLinkUri = c.getNewProvisioningDeviceLinkUri();
new Thread(() -> {
final var thread = new Thread(() -> {
final ProvisioningManager provisioningManager = c.getProvisioningManagerFor(deviceLinkUri);
try {
provisioningManager.finishDeviceLink(newDeviceName);
} catch (IOException | TimeoutException | UserAlreadyExists e) {
e.printStackTrace();
}
}).start();
});
thread.setName("dbus-link");
thread.start();
return deviceLinkUri.toString();
} catch (TimeoutException | IOException e) {
throw new SignalControl.Error.Failure(e.getClass().getSimpleName() + " " + e.getMessage());