Skip to content

Commit dd91aa3

Browse files
committed
Close asyncio.Streams explicitly (do not rely on GC)
1 parent 786fbed commit dd91aa3

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

asyncpg/connect_utils.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -610,7 +610,9 @@ async def _negotiate_ssl_connection(host, port, conn_factory, *, loop, ssl,
610610

611611
sock = sock.dup() # Must come before tr.close()
612612
finally:
613-
tr.close()
613+
writer.close()
614+
if hasattr(writer, 'wait_closed'):
615+
await writer.wait_closed()
614616

615617
try:
616618
return await conn_factory(sock=sock) # Must come after tr.close()

asyncpg/connection.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1223,6 +1223,8 @@ async def _cancel(self, waiter):
12231223
waiter.set_result(None)
12241224
if w is not None:
12251225
w.close()
1226+
if hasattr(w, 'wait_closed'):
1227+
await w.wait_closed()
12261228

12271229
def _cancel_current_command(self, waiter):
12281230
self._cancellations.add(self._loop.create_task(self._cancel(waiter)))

0 commit comments

Comments
 (0)