Signal handler problem

Consider the snippet -


require 'socket'
require 'thread'

t = do
   sock =
   sock.bind("", 9000)
   2.times do[sock])
     msg = sock.recvfrom_nonblock(1000)
     puts msg

puts "installing signal handler"

trap("INT") { puts "control-c received" } # do nothing, just print

# ---------------------------------

One user thread blocks on IO and the main thread joins for this thread but
after installing a signal handler.
I would expect the control-c to be trapped by this but that does not happen
until the thread blocked for IO is unblocked by a network message.

My ruby is "ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-mswin32]"

Am I missing something here?

- Nasir