This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author asvetlov
Recipients asvetlov, yselivanov
Date 2022-03-30.15:34:49
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1648654490.03.0.819318508338.issue47167@roundup.psfhosted.org>
In-reply-to
Content
Now asyncio.Task has a strict hardcoded check for futures processes on task's step.
Sometimes third-party library [1] wants to replace it with custom logic.
Currently it is impossible without implementing the full asyncio.Task replacement from scratch.
`asyncio.Task` is a non-trivial highly optimized part of async, keeping a third-party version in sync with the reference implementation takes more time and effort than it should be.

This issue proposes adding `Task._check_future(future)` method that could be overridden in subclasses.  The default C implementation uses a fast path that has no performance penalty.

1. https://github.com/aio-libs/aioloop-proxy implements nested loop proxies that are very useful for writing tests. A proxy can work in parallel with ancestors but checks all own acquired resources cleanup on 
the proxy closing.
History
Date User Action Args
2022-03-30 15:34:50asvetlovsetrecipients: + asvetlov, yselivanov
2022-03-30 15:34:50asvetlovsetmessageid: <1648654490.03.0.819318508338.issue47167@roundup.psfhosted.org>
2022-03-30 15:34:50asvetlovlinkissue47167 messages
2022-03-30 15:34:49asvetlovcreate