Doh! Thanks! Didn't mean to imply it was a problem with ruby, I'm just a crappy coder :) -david ----- Original Message ----- From: "ts" <decoux / moulon.inra.fr> To: "ruby-talk ML" <ruby-talk / ruby-lang.org> Cc: <ruby-talk / ruby-lang.org> Sent: Thursday, May 24, 2001 6:10 AM Subject: [ruby-talk:15664] Re: more fun with TCPServer > >>>>> "D" == David Thiel <dthiel / nexprise.com> writes: > > D> Is this a problem with gets or threading? > > No, with your source :-) > > D> while (session = server.accept) > D> users << User.new(session) > D> users.last.thread = Thread.new(users.last) { |user| > ^^^^ > D> user.linenum = users.length > D> user.address = user.socket.addr > D> puts "connected: #{user.to_s}" > D> until user.socket.eof > ^^^^ > D> input = user.socket.gets > D> puts input > D> users.each {|user| user.write(input) } > ^^^^ > > You re-use the same variable and erase its content, write it > > users.each {|new_user| new_user.write(input) } > > D> end > D> users.delete_at(user.linenum - 1) > D> user.socket.close > D> } > D> end > > > > Guy Decoux > >