def ping(self, address, timeout, size, request_id, seq): """ Send echo request and returns future """ # @todo: Check timeout logger.debug("[%s] Ping (req=%s, seq=%s, timeout=%sms)", address, request_id, seq, timeout) msg = self.build_echo_request(size, request_id, seq) sid = (address, request_id, seq) f = Future() f.sid = sid self.sessions[sid] = f self.send(address, msg) IOLoop.current().call_later(timeout / 1000.0, functools.partial(self.on_timeout, f)) return f