import java.util.UUID;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
+import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.locks.ReentrantLock;
import java.util.function.Function;
import java.util.stream.Collectors;
}
}
+ private static final AtomicInteger threadNumber = new AtomicInteger(0);
+
private void startReceiveThreadIfRequired() {
if (receiveThread != null) {
return;
}
}
});
+ receiveThread.setName("receive-" + threadNumber.getAndIncrement());
receiveThread.start();
}
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 {
});
}
+ 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;
}
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(
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);
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());