aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/tools/python3/src/Lib/asyncio/streams.py
diff options
context:
space:
mode:
authorshadchin <shadchin@yandex-team.com>2023-12-13 02:43:57 +0300
committershadchin <shadchin@yandex-team.com>2023-12-13 03:08:48 +0300
commit5b48aabc614c6d407f885f3b228dc484ad4c5ba9 (patch)
tree602eb5cc5d85bf730c1de1fa50a13c2ee552830d /contrib/tools/python3/src/Lib/asyncio/streams.py
parent35d7049b38602e8cbfcd3f96257329a1abce947e (diff)
downloadydb-5b48aabc614c6d407f885f3b228dc484ad4c5ba9.tar.gz
Update Python 3 to 3.11.7
Diffstat (limited to 'contrib/tools/python3/src/Lib/asyncio/streams.py')
-rw-r--r--contrib/tools/python3/src/Lib/asyncio/streams.py19
1 files changed, 17 insertions, 2 deletions
diff --git a/contrib/tools/python3/src/Lib/asyncio/streams.py b/contrib/tools/python3/src/Lib/asyncio/streams.py
index 19d9154b66..23b6e4c32f 100644
--- a/contrib/tools/python3/src/Lib/asyncio/streams.py
+++ b/contrib/tools/python3/src/Lib/asyncio/streams.py
@@ -245,7 +245,19 @@ class StreamReaderProtocol(FlowControlMixin, protocols.Protocol):
res = self._client_connected_cb(reader,
self._stream_writer)
if coroutines.iscoroutine(res):
+ def callback(task):
+ exc = task.exception()
+ if exc is not None:
+ self._loop.call_exception_handler({
+ 'message': 'Unhandled exception in client_connected_cb',
+ 'exception': exc,
+ 'transport': transport,
+ })
+ transport.close()
+
self._task = self._loop.create_task(res)
+ self._task.add_done_callback(callback)
+
self._strong_reader = None
def connection_lost(self, exc):
@@ -392,8 +404,11 @@ class StreamWriter:
def __del__(self):
if not self._transport.is_closing():
- self.close()
-
+ if self._loop.is_closed():
+ warnings.warn("loop is closed", ResourceWarning)
+ else:
+ self.close()
+ warnings.warn(f"unclosed {self!r}", ResourceWarning)
class StreamReader: