I'm having a bit of a problem accessing variables in an instance of GServer.
What I would like to do is make a hash that is effectively global to the
current thread.

-/Server.rb
require 'gserver'
require 'connect.rb'

class TestServer < GServer
  def initialize(port = 4000, *args)
    super(port, *args)
  end
  def serve( io )
      @test_hash = Hash.new
      connect(io) #Defined in connect.rb
    loop do
      str = io.gets
      parser(str,io)
    end
  end
end

The way that I'm doing it doesn't allow each thread to have it's own copy of
@test_hash and that's my problem. I need each thread to be able to change
the data stored in the hash without affecting the data stored in the hash
for all threads. I'm sure that my understanding of scope and GServer itself
is causing my problem, but I just don't know what to do to fix it. I was
thinking that I could pass the hash as a parameter to the connect function
but that would quickly become a problem as it would need to be passed to
several other functions after that and if possible I just don't want to have
to use that many extra parameters in my functions. Any help would be
appreciated.