// retoor <retoor@molodetz.nl>
class Signal {
static SIGHUP { 1 }
static SIGINT { 2 }
static SIGQUIT { 3 }
static SIGTERM { 15 }
static SIGUSR1 { 10 }
static SIGUSR2 { 12 }
foreign static trap_(signum, fiber)
foreign static ignore_(signum)
foreign static reset_(signum)
static trap(signum, fn) {
if (!(signum is Num)) Fiber.abort("Signal number must be a number.")
var fiber = Fiber.new {
while (true) {
fn.call()
Fiber.yield()
}
}
trap_(signum, fiber)
}
static ignore(signum) {
if (!(signum is Num)) Fiber.abort("Signal number must be a number.")
ignore_(signum)
}
static reset(signum) {
if (!(signum is Num)) Fiber.abort("Signal number must be a number.")
reset_(signum)
}
}