summaryrefslogtreecommitdiffstats
path: root/Lib/asyncio
Commit message (Collapse)AuthorAgeFilesLines
* gh-109538: Avoid RuntimeError when StreamWriter is deleted with closed loop ↵DPR2023-11-151-3/+5
| | | | | | | (#111983) Issue a ResourceWarning instead. Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
* gh-111246: Remove listening Unix socket on close (#111483)Pierre Ossman (ThinLinc team)2023-11-081-1/+32
| | | | | Try to clean up the socket file we create so we don't add unused noise to the file system.
* GH-110894: Call loop exception handler for exceptions in client_connected_cb ↵Kumar Aditya2023-11-021-0/+12
| | | | | (#111601) Call loop exception handler for exceptions in `client_connected_cb` of `asyncio.start_server` so that applications can handle it.
* gh-79033: Try to fix asyncio.Server.wait_closed() again (GH-111336)Guido van Rossum2023-10-281-2/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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 --------- Co-authored-by: Carol Willing <carolcode@willingconsulting.com>
* gh-110205: Fix asyncio ThreadedChildWatcher._join_threads() (#110884)Guido van Rossum2023-10-271-9/+2
| | | | | - `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`.
* gh-111085: Fix invalid state handling in TaskGroup and Timeout (#111111)Serhiy Storchaka2023-10-212-8/+10
| | | | | | | | | | | | | | | | 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). Co-authored-by: James Hilton-Balfe <gobot1234yt@gmail.com>
* gh-110961: Fixed asyncio.wait docstring to remove deprecated coroutine ↵Bar Harel2023-10-181-2/+0
| | | | | reference (#111017) Co-authored-by: Kumar Aditya <kumaraditya@python.org>
* remove redundant call to attach_loop in watcher (#110847)Thomas Grainger2023-10-141-2/+0
|
* gh-110771: Decompose run_forever() into parts (#110773)Russell Keith-Magee2023-10-132-31/+57
| | | Effectively introduce an unstable, private (really: protected) API for subclasses that want to override `run_forever()`.
* gh-94597: Add asyncio.EventLoop (#110723)Thomas Grainger2023-10-122-1/+4
| | | This is needed to pave the way for deprecating and eventually killing the event loop policy system (which is over-engineered and rarely used).
* gh-110733: Micro-optimization in BaseEventLoop._run_once (#110735)J. Nick Koston2023-10-111-2/+5
|
* gh-109955 : Update state transition comments for asyncio.Task (#109910)Kristján Valur Jónsson2023-09-271-7/+17
| | | Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
* Remove loop from docstring for asyncio.streams.open_connection (#108528)Tom Gillespie2023-09-271-3/+2
|
* gh-109653: Remove unused imports in the `Lib/` directory (#109803)Alex Waygood2023-09-241-1/+0
|
* gh-109709: Fix asyncio test_stdin_broken_pipe() (#109710)Victor Stinner2023-09-221-6/+8
| | | | | | 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().
* gh-108973: Fix asyncio test_subprocess_consistent_callbacks() (#109431)Victor Stinner2023-09-201-2/+1
| | | | | | | | | | | | | 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. Co-authored-by: Davide Rizzo <sorcio@gmail.com>
* gh-108903: Remove unneeded `lambda`s from `asyncio` (GH-108904)Nikita Sobolev2023-09-051-3/+3
|
* Fix patchcheck for `asyncio.tasks` (#108159)Kumar Aditya2023-08-201-9/+9
|
* GH-106684: raise `ResourceWarning` when `asyncio.StreamWriter` is not closed ↵Kumar Aditya2023-08-051-0/+6
| | | | (#107650)
* gh-82500: Fix asyncio sendfile overflow on 32bit (#107056)J. Nick Koston2023-07-231-0/+3
|
* gh-106527: asyncio: optimize to add/remove readers and writers (#106528)J. Nick Koston2023-07-221-35/+29
|
* gh-106634: Corrected minor asyncio doc issues (#106671)Chris Brett2023-07-132-2/+2
|
* gh-106503: asyncio._SelectorSocketTransport: fix cyclic reference on ↵Andrew Geng2023-07-071-0/+1
| | | | close(). (#106504)
* gh-106075: add `asyncio.taskgroups.__all__` to `asyncio.__all__` (#106090)James Webber2023-06-262-1/+2
| | | Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
* GH-105684: Require `asyncio.Task` implementations to support `set_name` ↵Kumar Aditya2023-06-133-16/+3
| | | | method (#105685)
* gh-105331: Change `asyncio.sleep` to raise ``ValueError` for nan (#105641)Jay2023-06-121-0/+4
| | | | Co-authored-by: Guido van Rossum <gvanrossum@gmail.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>
* gh-100344: Add C implementation for `asyncio.current_task` (#100345)Itamar Ostricher2022-12-221-1/+4
| | | Co-authored-by: pranavtbhat