# File lib/rack/session/moneta.rb, line 11
      def initialize(app, options = {}, &block)
        super
        if block
          raise ArgumentError, 'Use either block or option :store' if options[:store]
          @pool = ::Moneta.build(&block)
        else
          raise ArgumentError, 'Block or option :store is required' unless @pool = options[:store]
          @pool = ::Moneta.new(@pool, :expires => true) if Symbol === @pool
        end
        @pool = ::Moneta::WeakCreate.new(@pool) unless @pool.supports?(:create)
        @mutex = ::Mutex.new
      end