我有这样的服务器架构:
sleep 5
puts 'Server started'
loop { }
当我在 irb 中运行它时:
arr = Open3.popen3('ruby server.rb') arr[1].gets
获取块,甚至我知道它应该返回“服务器已启动”,但它没有。当我中断它并arr[1].gets
再次调用时,它会立即返回“服务器启动”。
如何让它首先返回输出arr[1].gets
?
PS。当我loop { }
从服务器中删除它时,它工作得很好。
我有这样的服务器架构:
sleep 5
puts 'Server started'
loop { }
当我在 irb 中运行它时:
arr = Open3.popen3('ruby server.rb') arr[1].gets
获取块,甚至我知道它应该返回“服务器已启动”,但它没有。当我中断它并arr[1].gets
再次调用时,它会立即返回“服务器启动”。
如何让它首先返回输出arr[1].gets
?
PS。当我loop { }
从服务器中删除它时,它工作得很好。