def unbind(reason)
@clients.map { |c| c.unbind(reason) }
if r = @pending.shift
@clients.push r
r.reset!
@p.reset!
begin
@conn.set_deferred_status :unknown
if @connopts.proxy
@conn.reconnect(@connopts.host, @connopts.port)
else
@conn.reconnect(r.req.host, r.req.port)
end
@conn.pending_connect_timeout = @connopts.connect_timeout
@conn.comm_inactivity_timeout = @connopts.inactivity_timeout
@conn.callback { r.connection_completed }
rescue EventMachine::ConnectionError => e
@clients.pop.close(e.message)
end
else
@deferred = true
@conn.close_connection
end
end