Como escuto a entrada STDIN sem pausar meu script?

eu tenho umwhile loop constantemente ouvindo as conexões recebidas e enviando-as para o console. Eu gostaria de poder emitir comandos através do console sem afetar a saída. Eu tentei:

Thread.new do
    while true
        input   = gets.chomp
        puts "So I herd u sed, \"#{input}\"."
        #Commands would be in this scope
    end
end

No entanto, isso parece pausar meu script inteiro até que a entrada seja recebida; e mesmo assim, alguns threads que iniciei antes deste parecem não ser executados. Eu tentei olhar para o TCPSocketselect() método sem sucesso.

questionAnswers(2)

yourAnswerToTheQuestion