Issue #21119: asyncio now closes sockets on errors
Fix ResourceWarning: create_connection(), create_datagram_endpoint() and
create_unix_server() methods of event loop now close the newly created socket
on error.
diff --git a/Lib/asyncio/base_events.py b/Lib/asyncio/base_events.py
index 3d4a87a..1c7073c 100644
--- a/Lib/asyncio/base_events.py
+++ b/Lib/asyncio/base_events.py
@@ -412,6 +412,10 @@
if sock is not None:
sock.close()
exceptions.append(exc)
+ except:
+ if sock is not None:
+ sock.close()
+ raise
else:
break
else:
@@ -512,6 +516,10 @@
if sock is not None:
sock.close()
exceptions.append(exc)
+ except:
+ if sock is not None:
+ sock.close()
+ raise
else:
break
else: