added a process_finished event and added syslog error reporting

This commit is contained in:
Izaya 2020-06-29 15:25:58 +10:00
parent be3d3c207f
commit 5938f75f4c

View File

@ -2,7 +2,13 @@ do
local tTasks,nPid,nTimeout,cPid = {},1,0.25,0 -- table of tasks, next process ID, event timeout, current PID local tTasks,nPid,nTimeout,cPid = {},1,0.25,0 -- table of tasks, next process ID, event timeout, current PID
function os.spawn(f,n) -- function string -- number -- creates a process from function *f* with name *n* function os.spawn(f,n) -- function string -- number -- creates a process from function *f* with name *n*
tTasks[nPid] = { tTasks[nPid] = {
c=coroutine.create(f), -- actual coroutine c=coroutine.create(function()
local rt = {pcall(f)}
if not rt[1] then
syslog(rt[2])
end
computer.pushSignal("process_finished",os.pid(),table.unpack(rt))
end), -- actual coroutine
n=n, -- process name n=n, -- process name
p=nPid, -- process PID p=nPid, -- process PID
P=cPid, -- parent PID P=cPid, -- parent PID