begin loop {} rescue Interrupt p "Ctr-C Pressed..Cleaning Up & Shutting Down" loop do break if exit_bool.false? end exit 130 end
这段代码在主线程中运行.有多个线程执行多个文件和DB操作. exit_bool是由其他线程设置的原子var,表示它们处于某个操作的中间.我检查值并等待它变为false然后退出.
我想知道循环{}的成本与循环{sleep x}相反.
另一个选择是永远只有sleep:
sleep
begin sleep rescue Interrupt # ... end