# File lib/amq/client/async/queue.rb, line 215
        def unbind(exchange, routing_key = AMQ::Protocol::EMPTY_STRING, arguments = nil, &block)
          exchange_name = if exchange.respond_to?(:name)
                            exchange.name
                          else

                            exchange
                          end

          @connection.send_frame(Protocol::Queue::Unbind.encode(@channel.id, @name, exchange_name, routing_key, arguments))

          self.append_callback(:unbind, &block)
          @channel.queues_awaiting_unbind_ok.push(self)


          @bindings.delete_if { |b| b[:exchange] == exchange_name }

          self
        end