Skip to content

Commit

Permalink
[miio] Avoid shutting down shared executor service
Browse files Browse the repository at this point in the history
* Closing openhab#11152
* Better identify communication threads

Signed-off-by: Marcel Verpaalen <marcel@verpaalen.com>
  • Loading branch information
marcelrv committed Aug 27, 2021
1 parent 73f7a86 commit ca40e54
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,8 @@ public abstract class MiIoAbstractHandler extends BaseThingHandler implements Mi
protected static final Gson GSON = new GsonBuilder().create();
protected static final String TIMESTAMP = "timestamp";

protected ScheduledExecutorService miIoScheduler = scheduler;
protected ScheduledExecutorService miIoScheduler = new ScheduledThreadPoolExecutor(1,
new NamedThreadFactory("miio"));
protected @Nullable ScheduledFuture<?> pollingJob;
protected MiIoDevices miDevice = MiIoDevices.UNKNOWN;
protected boolean isIdentified;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,7 @@ MiIoSendCommand sendMiIoSendCommand(MiIoSendCommand miIoSendCommand) {
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;
}
Expand All @@ -261,14 +261,17 @@ public synchronized void startReceiver() {
*
*/
private class MessageSenderThread extends Thread {
public MessageSenderThread() {
super("Mi IO MessageSenderThread");
private final String deviceId;

public MessageSenderThread(String deviceId) {
super("Mi IO 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()) {
Expand All @@ -291,11 +294,11 @@ public void run() {
// 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);
}
}

Expand Down

0 comments on commit ca40e54

Please sign in to comment.