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