summaryrefslogtreecommitdiffstats
path: root/Lib/asyncio
Commit message (Collapse)AuthorAgeFilesLines
* [3.12] Use Cirrus M1 macOS runners for CI (GH-119979) (GH-119987)Łukasz Langa2024-06-031-1/+0
| | | | | | | (cherry picked from commit 6acb32fac3511c1d5500cac66f1d6397dcdab835) Co-authored-by: Łukasz Langa <lukasz@langa.pl> Co-authored-by: Ee Durbin <ee@python.org>
* [3.12] gh-113892: Add a extra check to `ProactorEventLoop.sock_connect` to ↵Miss Islington (bot)2024-06-011-0/+2
| | | | | | | ensure that the given socket is in non-blocking mode (GH-119519) (#119913) (cherry picked from commit cf3bba3f0671d2c9fee099e3ab0f78b98b176131) Co-authored-by: Kirill Podoprigora <kirill.bast9@mail.ru>
* [3.12] gh-91227: Ignore ERROR_PORT_UNREACHABLE in proactor recvfrom() ↵Miss Islington (bot)2024-03-251-12/+17
| | | | | | | (GH-32011) (GH-117209) (cherry picked from commit f11d0d8be8af28e1368c3c7c116218cf65ddf93e) Co-authored-by: Erik Soma <stillusingirc@gmail.com>
* [3.12] gh-116773: Fix overlapped memory corruption crash (GH-116774) (#117078)jkriegshauser2024-03-201-7/+7
| | | Manual backport of gh-116774.
* [3.12] chore: fix typos (#116345) (#116370)Terry Jan Reedy2024-03-051-1/+1
| | | | Co-authored-by: cui fliter <imcusg@gmail.com> (cherry picked from commit e7ba6e9dbe5433b4a0bcb0658da6a68197c28630)
* [3.12] gh-111358: Fix timeout behaviour in ↵Miss Islington (bot)2024-02-191-9/+11
| | | | | | | BaseEventLoop.shutdown_default_executor (GH-115622) (#115641) (cherry picked from commit 53d5e67804227d541ed2f9e8efea8de5d70cb1ec) Co-authored-by: Jamie Phan <jamie@ordinarylab.dev>
* [3.12] gh-114887 Reject only sockets of type SOCK_STREAM in create_da… ↵Travis Howse2024-02-041-2/+2
| | | | | | | | | (#114980) Also improve exception message. (cherry picked from commit 94ec2b9c9ce898723c3fe61fbc64d6c8f4f68700) Co-authored-by: Donghee Na <donghee.na92@gmail.com>
* [3.12] gh-109534: fix reference leak when SSL handshake fails (GH-114074) ↵Miss Islington (bot)2024-02-012-0/+5
| | | | | | | | (#114829) gh-109534: fix reference leak when SSL handshake fails (GH-114074) (cherry picked from commit 80aa7b3688b8fdc85cd53d4113cb5f6ce5500027) Co-authored-by: Jamie Phan <jamie@ordinarylab.dev>
* [3.12] gh-75128: Ignore EADDRNOTAVAIL error in ↵Miss Islington (bot)2024-01-221-3/+17
| | | | | | | | asyncio.BaseEventLoop.create_server() (GH-114420) (GH-114441) (cherry picked from commit a53e56e7d88b4f2a2943c9f191024198009fcf9e) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com> Co-authored-by: Antoine Pitrou <pitrou@free.fr>
* [3.12] gh-95649: Document that asyncio contains uvloop code (GH-107536) ↵Alois Klink2024-01-143-0/+12
| | | | | | | | | | | | (#114046) Some of the asyncio SSL changes in GH-31275 [1] were taken from v0.16.0 of the uvloop project [2]. In order to comply with the MIT license, we need to just need to document the copyright information. [1]: https://github.com/python/cpython/pull/31275 [2]: https://github.com/MagicStack/uvloop/tree/v0.16.0 (cherry picked from commit dce30c9cbc212e5455e100f35ac6afeb30dfd23e)
* [3.12] gh-113538: Don't error in stream reader protocol callback when task ↵Miss Islington (bot)2024-01-041-0/+3
| | | | | | | is cancelled (GH-113690) (#113713) (cherry picked from commit 4681a5271a8598b46021cbc556ac8098ab8a1d81) Co-authored-by: Guido van Rossum <guido@python.org>
* [3.12] GH-113214: Fix SSLProto exception handling in SSL-over-SSL scenarios ↵Miss Islington (bot)2023-12-211-7/+6
| | | | | | | | | | | (GH-113334) (#113339) When wrapped, `_SSLProtocolTransport._force_close(exc)` is called just like in the unwrapped scenario `_SelectorTransport._force_close(exc)` or `_ProactorBasePipeTransport._force_close(exc)` would be called, except here the exception needs to be passed through the `SSLProtocol._abort()` method, which didn't accept an exception object. This commit ensures that this path works, in the same way that the uvloop implementation of SSLProto passes on the exception (on which the current implementation of SSLProto is based). (cherry picked from commit 1ff02385944924db7e683a607da2882462594764) Co-authored-by: Martijn Pieters <mj@zopatista.com>
* [3.12] gh-109538: Catch closed loop runtime error and issue warning ↵DPR2023-11-161-2/+6
| | | | | | | | | | | | | | | | | (GH-111983) (#112142) * [3.12] gh-109538: Avoid RuntimeError when StreamWriter is deleted with closed loop (GH-111983) Issue a ResourceWarning instead. (cherry picked from commit e0f512797596282bff63260f8102592aad37cdf1) gh-109538: Avoid RuntimeError when StreamWriter is deleted with closed loop (#111983) Issue a ResourceWarning instead. Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com> (cherry picked from commit e0f512797596282bff63260f8102592aad37cdf1) * Fix missing warnings import
* [3.12] GH-110894: Call loop exception handler for exceptions in ↵Kumar Aditya2023-11-021-0/+12
| | | | | | client_connected_cb (GH-111601) (#111632) Call loop exception handler for exceptions in `client_connected_cb` of `asyncio.start_server` so that applications can handle it.. (cherry picked from commit 229f44d353c71185414a072017f46f125676bdd6)
* [3.12] gh-79033: Try to fix asyncio.Server.wait_closed() again (GH-111336) ↵Miss Islington (bot)2023-10-281-2/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#111424) gh-79033: Try to fix asyncio.Server.wait_closed() again (GH-111336) * Try to fix asyncio.Server.wait_closed() again I identified the condition that `wait_closed()` is intended to wait for: the server is closed *and* there are no more active connections. When this condition first becomes true, `_wakeup()` is called (either from `close()` or from `_detach()`) and it sets `_waiters` to `None`. So we just check for `self._waiters is None`; if it's not `None`, we know we have to wait, and do so. A problem was that the new test introduced in 3.12 explicitly tested that `wait_closed()` returns immediately when the server is *not* closed but there are currently no active connections. This was a mistake (probably a misunderstanding of the intended semantics). I've fixed the test, and added a separate test that checks exactly for this scenario. I also fixed an oddity where in `_wakeup()` the result of the waiter was set to the waiter itself. This result is not used anywhere and I changed this to `None`, to avoid a GC cycle. * Update Lib/asyncio/base_events.py --------- (cherry picked from commit 26553695592ad399f735d4dbaf32fd871d0bb1e1) Co-authored-by: Guido van Rossum <guido@python.org> Co-authored-by: Carol Willing <carolcode@willingconsulting.com>
* [3.12] gh-110205: Fix asyncio ThreadedChildWatcher._join_threads() ↵Miss Islington (bot)2023-10-271-9/+2
| | | | | | | | | | (GH-110884) (#111412) - `ThreadedChildWatcher.close()` is now *officially* a no-op; `_join_threads()` never did anything. - Threads created by that class are now named `asyncio-waitpid-NNN`. - `test.test_asyncio.utils.TestCase.close_loop()` now waits for the child watcher's threads, but not forever; if a thread hangs, it raises `RuntimeError`. (cherry picked from commit c3bb10c9303503e7b55a7bdf9acfa6b3bcb699c6) Co-authored-by: Guido van Rossum <guido@python.org>
* [3.12] gh-111085: Fix invalid state handling in TaskGroup and Timeout ↵Miss Islington (bot)2023-10-212-8/+10
| | | | | | | | | | | | | | | | | | | | (GH-111111) (GH-111171) asyncio.TaskGroup and asyncio.Timeout classes now raise proper RuntimeError if they are improperly used. * When they are used without entering the context manager. * When they are used after finishing. * When the context manager is entered more than once (simultaneously or sequentially). * If there is no current task when entering the context manager. They now remain in a consistent state after an exception is thrown, so subsequent operations can be performed correctly (if they are allowed). (cherry picked from commit 6c23635f2b7067ef091a550954e09f8b7c329e3f) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com> Co-authored-by: James Hilton-Balfe <gobot1234yt@gmail.com>
* [3.12] remove redundant call to attach_loop in watcher (GH-110847) (#110867)Miss Islington (bot)2023-10-141-2/+0
| | | | | (cherry picked from commit 596589104fe5a4d90cb145b2cc69b71cc9aa9f07) Co-authored-by: Thomas Grainger <tagrain@gmail.com>
* [3.12] gh-109955 : Update state transition comments for asyncio.Task ↵Miss Islington (bot)2023-10-021-7/+17
| | | | | | | | | (GH-109910) (#109992) gh-109955 : Update state transition comments for asyncio.Task (GH-109910) (cherry picked from commit 45cf5b0c69bb5c51f33fc681d90c45147e311ddf) Co-authored-by: Kristján Valur Jónsson <sweskman@gmail.com> Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
* [3.12] Remove loop from docstring for asyncio.streams.open_connection ↵Miss Islington (bot)2023-10-021-3/+2
| | | | | | | | (GH-108528) (#109941) Remove loop from docstring for asyncio.streams.open_connection (GH-108528) (cherry picked from commit e721f7a95186452339dc9e57630d639d549b2521) Co-authored-by: Tom Gillespie <tgbugs@gmail.com>
* [3.12] gh-109709: Fix asyncio test_stdin_broken_pipe() (GH-109710) (#109731)Miss Islington (bot)2023-10-021-6/+8
| | | | | | | | | | | gh-109709: Fix asyncio test_stdin_broken_pipe() (GH-109710) Replace harcoded sleep of 500 ms with synchronization using a pipe. Fix also Process._feed_stdin(): catch also BrokenPipeError on stdin.write(input), not only on stdin.drain(). (cherry picked from commit cbbdf2c1440c804adcfc32ea0470865b3b3b8eb2) Co-authored-by: Victor Stinner <vstinner@python.org>
* [3.12] gh-108973: Fix asyncio test_subprocess_consistent_callbacks() ↵Miss Islington (bot)2023-10-021-2/+1
| | | | | | | | | | | | | | | | | | | | (GH-109431) (#109609) gh-108973: Fix asyncio test_subprocess_consistent_callbacks() (GH-109431) SubprocessProtocol process_exited() method can be called before pipe_data_received() and pipe_connection_lost() methods. Document it and adapt the test for that. Revert commit 282edd7b2a74c4dfe1bfe3c5b1d30f9c21d554d6. _child_watcher_callback() calls immediately _process_exited(): don't add an additional delay with call_soon(). The reverted change didn't make _process_exited() more determistic: it can still be called before pipe_connection_lost() for example. (cherry picked from commit ced6924630037f1e5b3d1dbef2b600152fb07fbb) Co-authored-by: Victor Stinner <vstinner@python.org> Co-authored-by: Davide Rizzo <sorcio@gmail.com>
* [3.12] Fix patchcheck for `asyncio.tasks` (GH-108159) (#108160)Miss Islington (bot)2023-08-201-9/+9
| | | | | | Fix patchcheck for `asyncio.tasks` (GH-108159) (cherry picked from commit b1e5d2c601bbd3d435b60deef4818f3622bdfca3) Co-authored-by: Kumar Aditya <kumaraditya@python.org>
* [3.12] GH-106684: Close `asyncio.StreamWriter` when `asyncio.StreamWriter` ↵Miss Islington (bot)2023-08-101-0/+4
| | | | | | | | | is not closed by application (GH-107650) (#107656) GH-106684: raise `ResourceWarning` when `asyncio.StreamWriter` is not closed (GH-107650) (cherry picked from commit 41178e41995992bbe417f94bce158de93f9e3188) Co-authored-by: Kumar Aditya <kumaraditya@python.org> Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
* [3.12] gh-106634: Corrected minor asyncio doc issues (GH-106671) (#106712)Miss Islington (bot)2023-07-142-2/+2
| | | | | | gh-106634: Corrected minor asyncio doc issues (GH-106671) (cherry picked from commit 4b4a5b70aa8d47b1e2a0582b741c31b786da762a) Co-authored-by: Chris Brett <chrisbrett665@gmail.com>
* [3.12] gh-106503: asyncio._SelectorSocketTransport: fix cyclic reference on ↵Miss Islington (bot)2023-07-071-0/+1
| | | | | | | | close(). (GH-106504) (#106514) gh-106503: asyncio._SelectorSocketTransport: fix cyclic reference on close(). (GH-106504) (cherry picked from commit 3e5ce7968f5ab715f649e296e1f6b499621b8091) Co-authored-by: Andrew Geng <pteromys@gmail.com>
* [3.12] gh-106075: add `asyncio.taskgroups.__all__` to `asyncio.__all__` ↵Miss Islington (bot)2023-06-262-1/+2
| | | | | | | | | (GH-106090) (#106098) gh-106075: add `asyncio.taskgroups.__all__` to `asyncio.__all__` (GH-106090) (cherry picked from commit a12e8ffb49e05a1d1874389318911ce9685db232) Co-authored-by: James Webber <jamestwebber@users.noreply.github.com> Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
* gh-104340: Suppress warning about unawaited exception for closed pipe stdin ↵Guido van Rossum2023-05-171-0/+3
| | | | (#104586)
* gh-98539: Make _SSLTransportProtocol.abort() safe to call when closed (#104474)Sam Bull2023-05-141-1/+2
|
* gh-97696 Remove unnecessary check for eager_start kwarg (#104188)Jacob Bower2023-05-091-4/+17
| | | | Instead, add docstring to create_eager_task_factory.
* gh-104144: Optimize gather to finish eagerly when all futures complete ↵Itamar Ostricher2023-05-061-1/+12
| | | | eagerly (#104138)
* gh-104144: Skip scheduling a done callback if a TaskGroup task completes ↵Itamar Ostricher2023-05-051-2/+8
| | | | | eagerly (#104140) Co-authored-by: Carl Meyer <carl@oddbird.net>
* gh-97696: asyncio eager tasks factory (#102853)Itamar Ostricher2023-05-012-26/+106
| | | | Co-authored-by: Jacob Bower <jbower@meta.com> Co-authored-by: Carol Willing <carolcode@willingconsulting.com>
* gh-83925: Make asyncio.subprocess communicate similar to non-asyncio (#18650)Marek Marczykowski-Górecki2023-04-281-5/+6
| | | | | | | subprocess's communicate(None) closes stdin of the child process, after sending no (extra) data. Make asyncio variant do the same. This fixes issues with processes that waits for EOF on stdin before continuing.
* gh-103607: Fix `pause_reading` to work when called from `connection_made` in ↵Itayazolay2023-04-272-24/+32
| | | | | `asyncio`. (#17425) Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
* gh-103462: Ensure SelectorSocketTransport.writelines registers a writer when ↵Ali-Akber Saifee2023-04-131-0/+3
| | | | data is still pending (#103463)
* gh-102780: Fix uncancel() call in asyncio timeouts (#102815)Kristján Valur Jónsson2023-03-221-3/+4
| | | | | | | Also use `raise TimeOut from <CancelledError instance>` so that the CancelledError is set in the `__cause__` field rather than in the `__context__` field. Co-authored-by: Guido van Rossum <gvanrossum@gmail.com> Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
* gh-102810: Add docstrings to the public-facing methods of `asyncio.Timeout` ↵JosephSBoyle2023-03-191-0/+12
| | | | | | (#102811) Co-authored-by: Guido van Rossum <gvanrossum@gmail.com> Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
* GH-102748: remove legacy support for generator based coroutines from ↵Kumar Aditya2023-03-161-2/+1
| | | | | `asyncio.iscoroutine` (#102749) Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
* GH-100112: avoid using iterable coroutines in asyncio internally (#100128)Kumar Aditya2023-03-161-16/+6
|
* gh-102560 Add docstrings to asyncio.TaskGroup (#102565)JosephSBoyle2023-03-151-0/+18
|
* Remove redundant `_ensure_future` in favor of `ensure_future` in `asyncio` ↵Kumar Aditya2023-03-071-6/+2
| | | | (#102398)
* gh-100226: Clarify StreamReader.read behavior (#101807)Jan Gosmann2023-02-171-8/+9
|
* GH-96764: rewrite `asyncio.wait_for` to use `asyncio.timeout` (#98518)Kumar Aditya2023-02-161-48/+29
| | | Changes `asyncio.wait_for` to use `asyncio.timeout` as its underlying implementation.
* gh-101317: Add `ssl_shutdown_timeout` parameter for ↵beavailable2023-02-011-2/+4
| | | | | `asyncio.StreamWriter.start_tls` (#101335) Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
* gh-101143: Remove references to `TimerHandle` from ↵J. Nick Koston2023-01-211-6/+3
| | | | | `asyncio.base_events.BaseEventLoop._add_callback` (#101197) Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
* GH-100573: Fix server hang caused by os.stat() on named pipe (Windows) (#100959)Guido van Rossum2023-01-131-0/+5
|
* gh-100160: Restore and deprecate implicit creation of an event loop (GH-100410)Serhiy Storchaka2023-01-131-1/+23
| | | | | | | | | | Partially revert changes made in GH-93453. asyncio.DefaultEventLoopPolicy.get_event_loop() now emits a DeprecationWarning and creates and sets a new event loop instead of raising a RuntimeError if there is no current event loop set. Co-authored-by: Guido van Rossum <gvanrossum@gmail.com>
* GH-86508: skip binding to local addresses of different family in ↵Kumar Aditya2023-01-041-2/+8
| | | | `asyncio.open_connection` (#100615)
* GH-91166: Implement zero copy writes for `SelectorSocketTransport` in ↵Kumar Aditya2022-12-241-11/+75
| | | | | asyncio (#31871) Co-authored-by: Guido van Rossum <gvanrossum@gmail.com>