From 9bb18426a6742e12e3950cbe8023fa04ea119ba8 Mon Sep 17 00:00:00 2001 From: 0xboobface <0xboobface@gmail.com> Date: Sat, 11 Jul 2020 14:15:34 +0200 Subject: [PATCH] Interrupt keep alive thread on reconnect On reconnect interrupt the current keep alive thread, so that we don't pile up a bunch keep alive threads, if the there is a problem with the websocket connection. --- .../src/main/java/ctbrec/sites/mfc/MyFreeCamsClient.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/common/src/main/java/ctbrec/sites/mfc/MyFreeCamsClient.java b/common/src/main/java/ctbrec/sites/mfc/MyFreeCamsClient.java index ade01494..1e4f5ca5 100644 --- a/common/src/main/java/ctbrec/sites/mfc/MyFreeCamsClient.java +++ b/common/src/main/java/ctbrec/sites/mfc/MyFreeCamsClient.java @@ -56,6 +56,7 @@ public class MyFreeCamsClient { private static MyFreeCamsClient instance; private MyFreeCams mfc; private WebSocket ws; + private Thread keepAlive; private Moshi moshi; private volatile boolean running = false; @@ -562,8 +563,11 @@ public class MyFreeCamsClient { } private void startKeepAlive(WebSocket ws) { - Thread keepAlive = new Thread(() -> { - while (running) { + if (keepAlive != null) { + keepAlive.interrupt(); + } + keepAlive = new Thread(() -> { + while (running && !Thread.currentThread().isInterrupted()) { try { if (!connecting) { LOG.trace("--> NULL to keep the connection alive");