cpython/Lib/asyncio
Miss Islington (bot) 33dd75a28f
bpo-38356: Fix ThreadedChildWatcher thread leak in test_asyncio (GH-16552)
Motivation for this PR (comment from @vstinner in bpo issue):
```
Warning seen o AMD64 Ubuntu Shared 3.x buildbot:
https://buildbot.python.org/all/GH-/builders/141/builds/2593

test_devnull_output (test.test_a=syncio.test_subprocess.SubprocessThreadedWatcherTests) ...
Warning -- threading_cleanup() failed to cleanup 1 threads (count: 1, dangling: 2)
```
The following implementation details for the new method are TBD:

1) Public vs private

2) Inclusion in `close()`

3) Name

4) Coroutine vs subroutine method

5) *timeout* parameter

If it's a private method, 3, 4, and 5 are significantly less important.

I started with the most minimal implementation that fixes the dangling threads without modifying the regression tests, which I think is particularly important. I typically try to avoid directly modifying existing tests as much as possible unless it's necessary to do so. However, I am open to changing any part of this.

https://bugs.python.org/issue38356
(cherry picked from commit 0ca7cc7fc0)

Co-authored-by: Kyle Stanley <aeros167@gmail.com>
2020-01-12 03:21:00 -08:00
..
__init__.py bpo-38242: Revert "bpo-36889: Merge asyncio streams (GH-13251)" (#16482) (#16485) 2019-09-29 22:30:17 -07:00
__main__.py bpo-37028: asyncio REPL; activated via 'python -m asyncio'. (GH-13472) 2019-05-27 13:42:29 +02:00
base_events.py [3.8] bpo-39191: Fix RuntimeWarning in asyncio test (GH-17863) (#17894) 2020-01-07 16:55:19 +02:00
base_futures.py bpo-34622: Extract asyncio exceptions into a separate module (GH-9141) 2018-09-11 10:13:04 -07:00
base_subprocess.py bpo-32528: Make asyncio.CancelledError a BaseException. (GH-13528) 2019-05-27 14:45:12 +02:00
base_tasks.py bpo-34270: Make it possible to name asyncio tasks (GH-8547) 2018-08-08 17:06:47 -04:00
constants.py bpo-33734: asyncio/ssl: a bunch of bugfixes (#7321) 2018-06-04 11:32:35 -04:00
coroutines.py bpo-36921: Deprecate @coroutine for sake of async def (GH-13346) 2019-05-16 07:52:10 -07:00
events.py bpo-34344 Fix AbstractEventLoopPolicy.get_event_loop docstring (GH-16463) 2019-10-03 14:26:57 -07:00
exceptions.py bpo-32528: Make asyncio.CancelledError a BaseException. (GH-13528) 2019-05-27 14:45:12 +02:00
format_helpers.py bpo-33672: Fix Task.__repr__ crash with Cython's bogus coroutines (GH-7161) 2018-05-28 16:27:34 -04:00
futures.py bpo-38785: Prevent asyncio from crashing (GH-17144) 2019-11-13 13:54:56 -08:00
locks.py [3.8] bpo-36373: Fix deprecation warnings (GH-15889) (GH-15901) 2019-09-11 13:40:36 +03:00
log.py
proactor_events.py bpo-34679: ProactorEventLoop only uses set_wakeup_fd() in main thread (GH-16901) 2019-10-23 08:43:57 -07:00
protocols.py bpo-35394: Add empty slots to abstract asyncio protocols (#10889) 2018-12-11 19:07:05 +02:00
queues.py [3.8] bpo-36373: Fix deprecation warnings (GH-15889) (GH-15901) 2019-09-11 13:40:36 +03:00
runners.py Fix and improve `asyncio.run()` docs (GH-16403) (GH-16504) 2019-09-30 18:46:43 -07:00
selector_events.py bpo-39006: Fix asyncio when the ssl module is missing (GH-17524) 2019-12-09 06:19:48 -08:00
sslproto.py bpo-37035: Don't log OSError (GH-13548) 2019-05-27 06:28:34 -07:00
staggered.py Fix import path for asyncio.TimeoutError (GH-17691) 2019-12-24 03:04:12 -08:00
streams.py bpo-38529: Fix asyncio stream warning (GH-17474) 2019-12-07 03:39:57 -08:00
subprocess.py bpo-38242: Revert "bpo-36889: Merge asyncio streams (GH-13251)" (#16482) (#16485) 2019-09-29 22:30:17 -07:00
tasks.py bpo-38248: Fix inconsistent immediate asyncio.Task cancellation (GH-16330) (GH-16383) 2019-09-25 04:48:52 -07:00
transports.py [3.8] bpo-38148: Add slots to asyncio transports (GH-16077) (GH-16093) 2019-09-13 16:14:55 +03:00
trsock.py bpo-37027: Return a proxy socket object from transp.get_extra_info('socket') (GH-13530) 2019-05-27 06:57:19 -07:00
unix_events.py bpo-38356: Fix ThreadedChildWatcher thread leak in test_asyncio (GH-16552) 2020-01-12 03:21:00 -08:00
windows_events.py bpo-29883: Asyncio proactor udp (GH-13440) 2019-05-28 02:52:15 -07:00
windows_utils.py asyncio: __del__() keep reference to warnings.warn (GH-11491) 2019-01-10 11:24:40 +01:00