Mercurial Hosting > luan
annotate host/admin/src/private/tools/luan_threads.html.luan @ 2021:b8e5d53c4fc9
admin monitors scheduler
| author | Franklin Schmidt <fschmidt@gmail.com> | 
|---|---|
| date | Mon, 20 Oct 2025 14:45:27 -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 Table = require "luan:Table.luan" | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
4 local java_to_table_shallow = Table.java_to_table_shallow or error() | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
5 local Io = require "luan:Io.luan" | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
6 local Time = require "luan:Time.luan" | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
7 local Table = require "luan:Table.luan" | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
8 local to_table = Table.java_to_table_shallow or error() | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
9 local Http = require "luan:http/Http.luan" | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
10 require "java" | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
11 local Thread = require "java:java.lang.Thread" | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
12 local LuanException = require "java:luan.LuanException" | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
13 | 
| 
 
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 return function() | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
16 Io.stdout = Http.response.text_writer() | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
17 | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
18 local threads = Thread.getAllStackTraces() | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
19 local threads = {} | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
20 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
 | 
21 threads[#threads+1] = { | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
22 trace = trace | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
23 string = thread.toString() | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
24 state = thread.getState() | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
25 } | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
26 end | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
27 %> | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
28 <!doctype html> | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
29 <html lang="en"> | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
30 <body> | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
31 <h1>Luan Threads</h1> | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
32 <p><%=Http.request.headers["host"]%> - <%=Time.format(Time.now())%></p> | 
| 
 
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 local count = 0 | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
35 for _, thread in Luan.ipairs(threads) do | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
36 local luan_trace = java_to_table_shallow(LuanException.justLuan(thread.trace)) | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
37 if #luan_trace > 0 then | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
38 %> | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
39 <p><%=thread.string%> <%=thread.state%> | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
40 <ul> | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
41 <% | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
42 for i, el in Luan.ipairs(luan_trace) do | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
43 local line = LuanException.toLuanString(el); | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
44 %><li><%=line%></li><% | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
45 end | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
46 %> | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
47 </ul></p> | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
48 <% | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
49 count = count + 1 | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
50 end | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
51 end | 
| 
 
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 <p><%=count%> threads found</p> | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
54 | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
55 </body> | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
56 </html> | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
57 <% | 
| 
 
d5c21ca9703e
move threads to admin
 
Franklin Schmidt <fschmidt@gmail.com> 
parents: 
1995 
diff
changeset
 | 
58 end | 
