Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def abort(self, exception=exc.ConnectError):
"""
Aborts a connection and puts all pending futures into an error state.
If ``sys.exc_info()`` is set (i.e. this is being called in an exception
handler) then pending futures will have that exc info set. Otherwise
the given ``exception`` parameter is used (defaults to
``ConnectError``).
"""
log.warning("Aborting connection to %s:%s", self.host, self.port)
def abort_pending(f):
exc_info = sys.exc_info()
# TODO
log.debug('Abort pending: {}'.format(f))
if False and any(exc_info):
f.set_exc_info(exc_info)
def send(self, request, xid=None):
f = self.loop.create_future()
if self.closing:
f.set_exception(exc.ConnectError(self.host, self.port))
return f
if request.special_xid:
xid = request.special_xid
payload_log.debug("[SEND] (xid: %s) %s", xid, request)
payload = request.serialize(xid)
payload = size_struct.pack(len(payload)) + payload
self.opcode_xref[xid] = request.opcode
if xid in protocol.SPECIAL_XIDS:
self.pending_specials[xid].append(f)
else:
self.pending[xid] = f
async def heartbeat(self):
if self.closing:
return
await self.ensure_safe_state()
try:
timeout = self.timeout - self.timeout/HEARTBEAT_FREQUENCY
zxid, _ = await asyncio.wait_for(self.conn.send(protocol.PingRequest()), timeout)
self.last_zxid = zxid
except (exc.ConnectError, asyncio.TimeoutError):
if self.state != States.SUSPENDED:
self.state.transition_to(States.SUSPENDED)
except Exception as e:
log.exception('in heartbeat: {}'.format(e))
raise e
finally:
self.set_heartbeat()