Ruby的文档里面对于Kernel#trap的描述里面有一句:
trap returns the previous handler for the given signal.
这具体是啥意思呢?
主要是今天看到working with unix processes
里面有这么一段代码
trap(:INT) { puts 'This is the first signal handler' }
old_handler = trap(:INT) { old_handler.call puts 'This is the second handler' exit } sleep
应该就是利用了 trap 返回上一次的 handler 的功能。但是为啥会是这种类似递归的形式呢?
求大神解答