MCPcopy Index your code
hub / github.com/MagicStack/asyncpg / _cancel

Function _cancel

asyncpg/connect_utils.py:1255–1290  ·  view source on GitHub ↗
(*, loop, addr, params: _ConnectionParameters,
                  backend_pid, backend_secret)

Source from the content-addressed store, hash-verified

1253
1254
1255async def _cancel(*, loop, addr, params: _ConnectionParameters,
1256 backend_pid, backend_secret):
1257
1258 class CancelProto(asyncio.Protocol):
1259
1260 def __init__(self):
1261 self.on_disconnect = _create_future(loop)
1262 self.is_ssl = False
1263
1264 def connection_lost(self, exc):
1265 if not self.on_disconnect.done():
1266 self.on_disconnect.set_result(True)
1267
1268 if isinstance(addr, str):
1269 tr, pr = await loop.create_unix_connection(CancelProto, addr)
1270 else:
1271 if params.ssl and params.sslmode != SSLMode.allow:
1272 tr, pr = await _create_ssl_connection(
1273 CancelProto,
1274 *addr,
1275 loop=loop,
1276 ssl_context=params.ssl,
1277 ssl_is_advisory=params.sslmode == SSLMode.prefer)
1278 else:
1279 tr, pr = await loop.create_connection(
1280 CancelProto, *addr)
1281 _set_nodelay(_get_socket(tr))
1282
1283 # Pack a CancelRequest message
1284 msg = struct.pack('!llll', 16, 80877102, backend_pid, backend_secret)
1285
1286 try:
1287 tr.write(msg)
1288 await pr.on_disconnect
1289 finally:
1290 tr.close()
1291
1292
1293def _get_socket(transport):

Callers

nothing calls this directly

Calls 4

_create_ssl_connectionFunction · 0.85
_set_nodelayFunction · 0.85
_get_socketFunction · 0.85
closeMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…