Mercurial Hosting > luan
annotate host/admin/src/private/tools/java_threads.html.luan @ 2025:677795f0a4e7
fix
| author | Franklin Schmidt <fschmidt@gmail.com> | 
|---|---|
| date | Wed, 29 Oct 2025 21:34:39 -0600 | 
| parents | d5c21ca9703e | 
| children | 
| rev | line source | 
|---|---|
| 
1996
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
1 local Luan = require "luan:Luan.luan" | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
2 local error = Luan.error | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
3 local Io = require "luan:Io.luan" | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
4 local Time = require "luan:Time.luan" | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
5 local Table = require "luan:Table.luan" | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
6 local to_table = Table.java_to_table_shallow or error() | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
7 local Http = require "luan:http/Http.luan" | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
8 require "java" | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
9 local Thread = require "java:java.lang.Thread" | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
10 | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
11 | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
12 return function() | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
13 Io.stdout = Http.response.text_writer() | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
14 | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
15 local threads = Thread.getAllStackTraces() | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
16 local threads = {} | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
17 for thread, trace in Luan.pairs(to_table(Thread.getAllStackTraces())) do | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
18 threads[#threads+1] = { | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
19 trace = trace | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
20 string = thread.toString() | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
21 state = thread.getState() | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
22 } | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
23 end | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
24 %> | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
25 <!doctype html> | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
26 <html lang="en"> | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
27 <body> | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
28 <h1>Java Threads</h1> | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
29 <p><%=Http.request.headers["host"]%> - <%=Time.format(Time.now())%></p> | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
30 <% | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
31 local count = 0 | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
32 for _, thread in Luan.ipairs(threads) do | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
33 %> | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
34 <p><%=thread.string%> <%=thread.state%> | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
35 <ul> | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
36 <% | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
37 local trace = thread.trace | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
38 for i in Luan.range( 0 , trace.length - 1 ) do | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
39 local line = trace[i].toString() | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
40 %><li><%=line%></li><% | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
41 end | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
42 %> | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
43 </ul></p> | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
44 <% | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
45 count = count + 1 | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
46 end | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
47 %> | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
48 <p><%=count%> threads found</p> | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
49 | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
50 </body> | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
51 </html> | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
52 <% | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
53 end | 
