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

Reply via email to