--:Minify:-- local kernel = ... local signal = {} kernel.signal=signal function signal.sigsend(pid, sig) if sig<0 or sig>256 then error("EINVAL") end local task = kernel.tasks[tostring(pid)] if not task then error("ENOENT") end if not task.sigq then return end task.sigq[#task.sigq+1] = sig end function signal.sigcatch(handler) local task=kernel.currentTask task.sigh=handler if not task.sigq then task.sigq={} end local handle={ error="", active=true } if task.sigd then task.sigd.active=false; end task.sigd=handle return handle end function signal.sigignore() local task=kernel.currentTask task.sigh=nil task.sigq=nil if task.sigd then task.sigd.active=false end task.sigd=nil end local s=kernel.syscalls s["sigsend"] = signal.sigsend s["sigcatch"] = signal.sigcatch s["sigignore"] = signal.sigignore