¿Cómo escucho la entrada STDIN sin pausar mi script?

tengo unwhile loop escucha constantemente las conexiones entrantes y las envía a la consola. Me gustaría poder emitir comandos a través de la consola sin afectar la salida. He intentado:

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

Sin embargo, eso parece pausar todo mi script hasta que se recibe la entrada; e incluso entonces, algunos hilos que he iniciado antes de este no parecen ejecutarse. He intentado mirar TCPSocket'sselect() método en vano.

Respuestas a la pregunta(2)

Su respuesta a la pregunta