Mercurial Hosting > luan
diff src/luan/modules/http/tools/java_threads.html.luan @ 1218:a50803fde972
http/tools cleanup
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Tue, 20 Mar 2018 16:24:59 -0600 |
parents | src/luan/modules/http/tools/java_threads.luan@5dbb552075ff |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/luan/modules/http/tools/java_threads.html.luan Tue Mar 20 16:24:59 2018 -0600 @@ -0,0 +1,51 @@ +local Luan = require "luan:Luan.luan" +local error = Luan.error +local Io = require "luan:Io.luan" +local Time = require "luan:Time.luan" +local Http = require "luan:http/Http.luan" +java() +local Thread = require "java:java.lang.Thread" + + +return function() + Io.stdout = Http.response.text_writer() + + local threads = Thread.getAllStackTraces() + local threads = {} + for thread, trace in Luan.pairs(Thread.getAllStackTraces()) do + threads[#threads+1] = { + trace = trace + string = thread.toString() + state = thread.getState() + } + end +%> +<!doctype html> +<html> + <body> + <h1>Java Threads</h1> + <p><%=Http.request.headers["host"]%> - <%=Time.format(Time.now())%></p> + <% + local count = 0 + for _, thread in Luan.ipairs(threads) do + %> + <p><%=thread.string%> <%=thread.state%> + <ul> + <% + local trace = thread.trace + for i in Luan.range( 0 , trace.length - 1 ) do + local line = trace[i].toString() + %><li><%=line%></li><% + end + %> + </ul></p> + <% + count = count + 1 + end + %> + <p><%=count%> threads found</p> + + </body> +</html> +<% +end