From: "christoph.heindl@..." Date: 2005-01-24T16:00:53+09:00 Subject: Re: TCPSocket.new blocks other threads but you are joining the first thread (a)... that means thread b won't start before thread a terminates. try this one: require 'socket' require 'resolv-replace' count = 0 b = Thread.new do begin Thread.pass s = TCPSocket.new("192.168.0.5", 6667) rescue Exception puts "cannot connect" end end loop { count += 1 puts count sleep(0.1) } assuming that 192.168.0.5 is not reachable the output in linux will be: 1 2 3 [...] not connected [...] under windows: 1 not connected (after ~20secs) 2 3 4 [...] christoph