# File lib/rack/session/memcache.rb, line 44
      def get_session(env, sid)
        session = @pool.get(sid) if sid
        @mutex.lock if env['rack.multithread']
        unless sid and session
          env['rack.errors'].puts("Session '#{sid.inspect}' not found, initializing...") if $VERBOSE and not sid.nil?
          session = {}
          sid = generate_sid
          ret = @pool.add sid, session
          raise "Session collision on '#{sid.inspect}'" unless /^STORED/ =~ ret
        end
        session.instance_variable_set('@old', {}.merge(session))
        return [sid, session]
      rescue MemCache::MemCacheError, Errno::ECONNREFUSED # MemCache server cannot be contacted
        warn "#{self} is unable to find server."
        warn $!.inspect
        return [ nil, {} ]
      ensure
        @mutex.unlock if env['rack.multithread']
      end