def unsubscribe(queue_names, timeout = nil, &blk)
      count = each(:usable).inject(0) do |c, b|
        c + b.queues.inject(0) { |c, q| c + (queue_names.include?(q.name) ? 1 : 0) }
      end
      if count == 0
        blk.call if blk
      else
        handler = CountedDeferrable.new(count, timeout)
        handler.callback { blk.call if blk }
        each(:usable) { |b| b.unsubscribe(queue_names) { handler.completed_one } }
      end
      true
    end
def unsubscribe(queue_names, timeout = nil, &blk)
      count = each(:usable).inject(0) do |c, b|
        c + b.queues.inject(0) { |c, q| c + (queue_names.include?(q.name) ? 1 : 0) }
      end
      if count == 0
        blk.call if blk
      else
        handler = CountedDeferrable.new(count, timeout)
        handler.callback { blk.call if blk }
        each(:usable) { |b| b.unsubscribe(queue_names) { handler.completed_one } }
      end
      true
    end
Unsubscribe from the specified queues on usable broker clients
 Silently ignore unknown queues

 === Parameters
 queue_names(Array):: Names of queues previously subscribed to
 timeout(Integer):: Number of seconds to wait for all confirmations, defaults to no timeout

 === Block
 Optional block with no parameters to be called after all queues are unsubscribed

 === Return
 true:: Always return true