Update of /cvsroot/freenet/freenet/src/freenet/node/http/infolets
In directory sc8-pr-cvs1:/tmp/cvs-serv3970/src/freenet/node/http/infolets
Modified Files:
EnvironmentInfolet.java
Log Message:
Added ThreadStatusSnapshot, can be used to take a snapshot of current thread status
Made EnvironmentInfolet use the above mentioned class
Index: EnvironmentInfolet.java
===================================================================
RCS file:
/cvsroot/freenet/freenet/src/freenet/node/http/infolets/EnvironmentInfolet.java,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -r1.44 -r1.45
--- EnvironmentInfolet.java 18 Jul 2003 18:07:54 -0000 1.44
+++ EnvironmentInfolet.java 29 Sep 2003 07:52:02 -0000 1.45
@@ -6,6 +6,7 @@
import freenet.Core;
import freenet.support.Logger;
import freenet.fs.dir.NativeFSDirectory;
+import freenet.thread.*;
import freenet.thread.PooledThread;
import freenet.support.servlet.HtmlTemplate;
import freenet.transport.tcpAddress;
@@ -153,51 +154,22 @@
titleBoxTmp.toHtml(pw);
}
- ThreadGroup tg = Thread.currentThread().getThreadGroup().getParent();
- ThreadGroup topMost = null;
- while(tg != null)
- {
- topMost = tg;
- tg = tg.getParent();
- }
- StringBuffer buffer = new StringBuffer();
- Hashtable consumers = new Hashtable();
- ThreadCount tc = new ThreadCount();
- doGroup(topMost, buffer, consumers, tc);
- if (!consumers.isEmpty()) {
- ssw = new StringWriter(200);
- sw = new PrintWriter(ssw);
-
- total = tc.total;
- available = tc.available;
- sw.println("<table width=\"100%\">");
- sw.println("<tr><td>Total pooled threads</td><td align=right>" + total +
"</td></tr>");
- sw.println("<tr><td>Available pooled threads</td><td align=right>" +
available + "</td></tr>");
- sw.println("<tr><td>Pooled threads in use</td><td align=right>" + (total
- available) + "</td></tr>");
- sw.println("</table>");
+
+ ThreadStatusSnapshot t=new ThreadStatusSnapshot();
+ if (!t.getPoolConsumers().isEmpty()) {
titleBoxTmp.set("TITLE", "Thread Pool");
- titleBoxTmp.set("CONTENT", ssw.toString());
+ titleBoxTmp.set("CONTENT", t.threadStatusToHTML());
titleBoxTmp.toHtml(pw);
- ssw = new StringWriter(200);
- sw = new PrintWriter(ssw);
- sw.println("<table width=\"100%\">");
- sw.println("<tr><th align=\"left\">Class</th><th align=\"right\">Threads
used</th>");
- Object[] types = consumers.keySet().toArray();
- java.util.Arrays.sort(types);
- for (int x = 0; x < types.length; x++)
- sw.println("<tr><td>" + types[x] + "</td><td align=\"right\">" +
- ((Consumer) consumers.get(types[x])).number + "</td></tr>");
- sw.println("</table>");
titleBoxTmp.set("TITLE", "Pooled Thread Consumers");
- titleBoxTmp.set("CONTENT", ssw.toString());
+ titleBoxTmp.set("CONTENT", t.poolConsumersToHTML());
titleBoxTmp.toHtml(pw);
}
pw.println("</td></tr></table>");
pw.println("<br><br>");
pw.println("ThreadGroup/Thread Hierarchy:");
pw.print("<ul>");
- pw.println(buffer.toString());
+ pw.println(t.threadTreeToHTML());
pw.println("</ul><table><tr><td>");
}
_______________________________________________
cvs mailing list
[EMAIL PROTECTED]
http://dodo.freenetproject.org/cgi-bin/mailman/listinfo/cvs