// retoor 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) } }