Software / code / prosody
File
tools/linedebug.lua @ 13439:1e229d710a3c
util.signal: Add support for signalfd(2) on Linux
signalfd allows handling signal events using the same method as sockets,
via file descriptors. Thus all signal dispatch can go through the same
main event loop as everything else, removing need for thread-scary
signal handling where execution would just jump to the signal handler
regardless of the state of Lua, and needing to keep track of Lua
states/threads.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sat, 24 Feb 2024 00:05:29 +0100 |
| parent | 11193:5850d24a4ad3 |
line wrap: on
line source
local data = {} local getinfo = debug.getinfo; local function linehook(ev, li) local S = getinfo(2, "S"); if S and S.source and S.source:match"^@" then local file = S.source:sub(2); local lines = data[file]; if not lines then lines = {}; data[file] = lines; for line in io.lines(file) do lines[#lines+1] = line; end end io.stderr:write(ev, " ", file, " ", li, " ", lines[li], "\n"); end end debug.sethook(linehook, "l");