You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by lg...@apache.org on 2016/02/17 11:24:42 UTC

[3/3] mina-sshd git commit: [SSHD-646] ThreadGroup created in ThreadUtils is not destroyed and causes memory leak

[SSHD-646] ThreadGroup created in ThreadUtils is not destroyed and causes memory leak


Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/7e24f2e1
Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/7e24f2e1
Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/7e24f2e1

Branch: refs/heads/master
Commit: 7e24f2e1b59f9b3bf026ac3c08f7a0a7baa97a74
Parents: adc1786
Author: Lyor Goldstein <ly...@gmail.com>
Authored: Wed Feb 17 12:25:19 2016 +0200
Committer: Lyor Goldstein <ly...@gmail.com>
Committed: Wed Feb 17 12:25:19 2016 +0200

----------------------------------------------------------------------
 .../java/org/apache/sshd/common/util/threads/ThreadUtils.java   | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/7e24f2e1/sshd-core/src/main/java/org/apache/sshd/common/util/threads/ThreadUtils.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/util/threads/ThreadUtils.java b/sshd-core/src/main/java/org/apache/sshd/common/util/threads/ThreadUtils.java
index d0a25ed..5fc07be 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/util/threads/ThreadUtils.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/util/threads/ThreadUtils.java
@@ -166,6 +166,9 @@ public final class ThreadUtils {
             ThreadGroup parentGroup = (s != null) ? s.getThreadGroup() : Thread.currentThread().getThreadGroup();
             String effectiveName = name.replace(' ', '-');
             group = new ThreadGroup(parentGroup, "sshd-" + effectiveName + "-group");
+            if (!group.isDaemon()) {
+                group.setDaemon(true);  // automatically destroy when last thread dies
+            }
             namePrefix = "sshd-" + effectiveName + "-thread-";
         }
 
@@ -180,7 +183,5 @@ public final class ThreadUtils {
             }
             return t;
         }
-
     }
-
 }