Ruby - 当主线程退出时不要杀死进程

时间:2016-09-25 02:08:07

标签: ruby multithreading sockets events

基本上,我的所有逻辑都在线程触发的一堆事件处理程序中。在主线程中建立事件处理程序之后:

puts 'Now connecting...'
socket = SocketIO::Client::Simple.connect 'http://localhost:3000'

socket.on :connect do
  puts 'Connected'
end

我在主线程中没有其他任何事情要做...但是当我退出它时,整个过程退出!我想我可以做一个while 1 {sleep 3}或其他东西,但这似乎是一个黑客。

据我所知,守护程序线程在Windows上也不起作用,所以我应该在这做什么?

1 个答案:

答案 0 :(得分:1)

如果您正在创建线程,那么您有义务在终止之前等待它们完成。通常,这是通过所讨论的一个或多个线程上的join来完成的。

你有办法从该SocketIO实例中获取线程吗?如果是,请join