From 169b3039b9e10a4498b78319bc32a8dcb8dccbb4 Mon Sep 17 00:00:00 2001 From: adam Date: Sat, 30 Oct 2004 22:53:06 +0000 Subject: [PATCH] experimental thread-killing capabilities darcs-hash:20041030225306-5007d-2386beb7236cf7c85652ece80d0f47c24c5f7178.gz --- src/org/ibex/jinetd/Loader.java | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/src/org/ibex/jinetd/Loader.java b/src/org/ibex/jinetd/Loader.java index 8f9fef8..5a2b171 100644 --- a/src/org/ibex/jinetd/Loader.java +++ b/src/org/ibex/jinetd/Loader.java @@ -1,4 +1,5 @@ package org.ibex.jinetd; +import org.ibex.io.*; import org.ibex.util.*; import java.io.*; import java.util.*; @@ -147,15 +148,36 @@ public class Loader extends Watcher { path.endsWith(".jar") ) ? super.slash(path) : null; } + private void nuke() { + if (tg.activeCount() == 0) return; + Log.info(this, "killing all threads for: " + path); + Log.info(this, " thread count before interrupt: " + tg.activeCount()); + tg.interrupt(); + try { Thread.sleep(3000); } catch (Exception e) { Log.error(this, e); } + Log.info(this, " thread count before kill: " + tg.activeCount()); + Thread[] all = new Thread[tg.activeCount()]; + tg.enumerate(all, true); + for(int i=0; i 0) { + Log.warn(this, " annoying threads:"); + Thread[] annoying = new Thread[tg.activeCount()]; + tg.enumerate(annoying, true); + for(int i=0; i