# File lib/mongrel.rb, line 809
809:     def listener(options={},&blk)
810:       raise "Cannot call listener inside another listener block." if (@listener or @listener_name)
811:       ops = resolve_defaults(options)
812:       ops[:num_processors] ||= 950
813:       ops[:timeout] ||= 0
814: 
815:       @listener = Mongrel::HttpServer.new(ops[:host], ops[:port].to_i, ops[:num_processors].to_i, ops[:timeout].to_i)
816:       @listener_name = "#{ops[:host]}:#{ops[:port]}"
817:       @listeners[@listener_name] = @listener
818: 
819:       # Does the actual cloaking operation to give the new implicit self.
820:       if blk
821:         cloaker(&blk).bind(self).call
822:       end
823: 
824:       # all done processing this listener setup, reset implicit variables
825:       @listener = nil
826:       @listener_name = nil
827:     end