From 0ff5f55d480e8c4fc9d005c464c5d7f0183b821c Mon Sep 17 00:00:00 2001 From: mturk Date: Fri, 3 Sep 2010 10:16:00 +0000 Subject: [PATCH] Call join only for alive threads git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@992252 13f79535-47bb-0310-9956-ffa450edef68 --- java/org/apache/tomcat/util/net/AprEndpoint.java | 32 ++++++++++++++---------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/java/org/apache/tomcat/util/net/AprEndpoint.java b/java/org/apache/tomcat/util/net/AprEndpoint.java index 496811fe8..80a21c4cd 100644 --- a/java/org/apache/tomcat/util/net/AprEndpoint.java +++ b/java/org/apache/tomcat/util/net/AprEndpoint.java @@ -692,32 +692,38 @@ public class AprEndpoint extends AbstractEndpoint { } for (int i = 0; i < pollers.length; i++) { pollers[i].destroy(); - try { - pollers[i].interrupt(); - pollers[i].join(); - } catch (InterruptedException e) { + if (pollers[i].isAlive()) { + try { + pollers[i].interrupt(); + pollers[i].join(); + } catch (InterruptedException e) { // Ignore + } } } pollers = null; for (int i = 0; i < cometPollers.length; i++) { cometPollers[i].destroy(); - try { - cometPollers[i].interrupt(); - cometPollers[i].join(); - } catch (InterruptedException e) { + if (cometPollers[i].isAlive()) { + try { + cometPollers[i].interrupt(); + cometPollers[i].join(); + } catch (InterruptedException e) { // Ignore + } } } cometPollers = null; if (useSendfile) { for (int i = 0; i < sendfiles.length; i++) { sendfiles[i].destroy(); - try { - sendfiles[i].interrupt(); - sendfiles[i].join(); - } catch (InterruptedException e) { - // Ignore + if (sendfiles[i].isAlive()) { + try { + sendfiles[i].interrupt(); + sendfiles[i].join(); + } catch (InterruptedException e) { + // Ignore + } } } sendfiles = null; -- 2.11.0