Hi, i'm programming a mud client in ruby and in order to recive all
the input i did this.

Gtk.idle_add { data = angalon.recv( 8 )
                     data = angalon.preprocess( data )
                     buffer.insert( buffer.end_iter , data )
                   }

but after the first lines are read and printed to the screen the
program becames unresponsive.

i've tested adding 
last_time = 0
Gtk.idle_add { puts "Idle" + last_time + "\n" 
                     last_time = last_time + 1}

and the program doesn't became unresponsive after it. (ie it responds
to me clicking the exit buttong and sending messages to the buffer.)

so i'm thinking recv() is waiting for something? i thought it was
different than wait for but since the method is implemented in C i
don't know where to read the implementation, can someone tell me how
exactly recv() works or refer me to the C file the is implemented?
(although i would prefer the first option).

Thanks in advance
-- 
                     Rorschach el Pirata