Use an ivar that does not break Rubinius' TCPSocket implementation
Correctly use timeout method
Synchronize access to the collection we accumulate responses in

Otherwise updates may get lost.