protected static final Gson GSON = new GsonBuilder().create();
protected static final String TIMESTAMP = "timestamp";
- protected ScheduledExecutorService miIoScheduler = scheduler;
+ protected ScheduledExecutorService miIoScheduler = new ScheduledThreadPoolExecutor(3,
+ new NamedThreadFactory("binding-" + getThing().getUID().getAsString(), true));
+
protected @Nullable ScheduledFuture<?> pollingJob;
protected MiIoDevices miDevice = MiIoDevices.UNKNOWN;
protected boolean isIdentified;
getThing().getThingTypeUID());
ScheduledThreadPoolExecutor miIoScheduler = new ScheduledThreadPoolExecutor(3,
- new NamedThreadFactory(getThing().getUID().getAsString(), true));
+ new NamedThreadFactory("binding-" + getThing().getUID().getAsString(), true));
miIoScheduler.setExecuteExistingDelayedTasksAfterShutdownPolicy(false);
miIoScheduler.setRemoveOnCancelPolicy(true);
this.miIoScheduler = miIoScheduler;
public synchronized void startReceiver() {
MessageSenderThread senderThread = this.senderThread;
if (senderThread == null || !senderThread.isAlive()) {
- senderThread = new MessageSenderThread();
+ senderThread = new MessageSenderThread(deviceId);
senderThread.start();
this.senderThread = senderThread;
}
*
*/
private class MessageSenderThread extends Thread {
- public MessageSenderThread() {
- super("Mi IO MessageSenderThread");
+ private final String deviceId;
+
+ public MessageSenderThread(String deviceId) {
+ super("OH-binding-miio-MessageSenderThread-" + deviceId);
setDaemon(true);
+ this.deviceId = deviceId;
}
@Override
public void run() {
- logger.debug("Starting Mi IO MessageSenderThread");
+ logger.debug("Starting Mi IO MessageSenderThread {}", deviceId);
while (!interrupted()) {
try {
if (concurrentLinkedQueue.isEmpty()) {
// That's our signal to stop
break;
} catch (Exception e) {
- logger.warn("Error while polling/sending message", e);
+ logger.warn("Error while polling/sending message for {}", deviceId, e);
}
}
closeSocket();
- logger.debug("Finished Mi IO MessageSenderThread");
+ logger.debug("Finished Mi IO MessageSenderThread {}", deviceId);
}
}