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