    # File lib/amqp/channel.rb, line 282
        def reuse
          old_id = @id
          # must release after we allocate a new id, otherwise we will end up
          # with the same value. MK.
          @id    = self.class.next_channel_id
          self.class.release_channel_id(old_id)

          self.open do
            @channel_is_open_deferrable.succeed

            # re-establish prefetch
            self.prefetch(@options[:prefetch], false) if @options[:prefetch]

            # exchanges must be recovered first because queue recovery includes recovery of bindings. MK.
            @exchanges.each { |name, e| e.auto_recover }
            @queues.each    { |name, q| q.auto_recover }
          end
        end