From faffe075c8b2e1ca209d098732c87f85f52ebd95 Mon Sep 17 00:00:00 2001 From: Will Hedgecock Date: Mon, 14 Feb 2022 11:51:29 -0600 Subject: [PATCH] Continually try to force-interrupt an event thread if it does not join in a timely fashion --- .../java/com/fazecast/jSerialComm/SerialPort.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/fazecast/jSerialComm/SerialPort.java b/src/main/java/com/fazecast/jSerialComm/SerialPort.java index b4298b6..cde83a2 100644 --- a/src/main/java/com/fazecast/jSerialComm/SerialPort.java +++ b/src/main/java/com/fazecast/jSerialComm/SerialPort.java @@ -2,7 +2,7 @@ * SerialPort.java * * Created on: Feb 25, 2012 - * Last Updated on: Jan 28, 2022 + * Last Updated on: Feb 14, 2022 * Author: Will Hedgecock * * Copyright (C) 2012-2022 Fazecast, Inc. @@ -1765,10 +1765,12 @@ public final class SerialPort try { - serialEventThread.join(500); - if (serialEventThread.isAlive()) - serialEventThread.interrupt(); - serialEventThread.join(); + do + { + serialEventThread.join(500); + if (serialEventThread.isAlive()) + serialEventThread.interrupt(); + } while (serialEventThread.isAlive()); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } serialEventThread = null;