cpython/Lib/asyncio
CtrlZvi 749afe81ec [3.6] bpo-26819: Prevent proactor double read on resume (GH-6921) (#7110)
The proactor event loop has a race condition when reading with
pausing/resuming. `resume_reading()` unconditionally schedules the read
function to read from the current future. If `resume_reading()` was
called before the previously scheduled done callback fires, this results
in two attempts to get the data from the most recent read and an
assertion failure. This commit tracks whether or not `resume_reading`
needs to reschedule the callback to restart the loop, preventing a
second attempt to read the data..
(cherry picked from commit 4151061855)

Co-authored-by: CtrlZvi <viz+github@flippedperspective.com>
2018-05-25 11:03:25 +03:00
..
__init__.py Issue #23046: Expose the BaseEventLoop class in the asyncio namespace 2015-01-06 01:03:58 +01:00
base_events.py bpo-27456: Ensure TCP_NODELAY is set on linux (#4231) (#4898) 2017-12-15 21:53:08 -05:00
base_futures.py Merge 3.5 (issue #28634) 2016-11-07 16:07:30 -05:00
base_subprocess.py Misc asyncio improvements from upstream (merge 3.5->3.6) 2016-09-30 08:18:34 -07:00
base_tasks.py Issue #28544: Implement asyncio.Task in C. 2016-10-28 12:52:37 -04:00
compat.py Issue #27243: Fix __aiter__ protocol 2016-06-09 15:08:31 -04:00
constants.py [3.6] bpo-31970: Reduce performance overhead of asyncio debug mode. (GH-4314) (#4322) 2017-11-07 17:50:48 +01:00
coroutines.py [3.6] bpo-31970: Reduce performance overhead of asyncio debug mode. (GH-4314) (#4322) 2017-11-07 17:50:48 +01:00
events.py [3.6] bpo-31970: Reduce performance overhead of asyncio debug mode. (GH-4314) (#4322) 2017-11-07 17:50:48 +01:00
futures.py asyncio: Remove unused Future._tb_logger attribute (GH-4596) (#4598) 2017-11-28 10:32:28 +01:00
locks.py bpo-32841: Fix cancellation in awaiting asyncio.Condition (GH-5665) (GH-5683) 2018-02-14 12:10:18 +02:00
log.py Rename the logger to plain "logger". 2013-10-17 15:39:45 -07:00
proactor_events.py [3.6] bpo-26819: Prevent proactor double read on resume (GH-6921) (#7110) 2018-05-25 11:03:25 +03:00
protocols.py asyncio doc: document Protocol state machine 2015-01-29 13:33:15 +01:00
queues.py bpo-31620: have asyncio/queues not leak memory when you've exceptions during waiting (GH-3813) (#4326) 2017-11-07 22:08:15 +03:00
selector_events.py [3.6] bpo-33263: Fix FD leak in _SelectorSocketTransport (GH-6450) (#7025) 2018-05-21 13:09:49 +03:00
sslproto.py [3.6] bpo-33037: Skip sending/receiving after SSL transport closing (GH-6044) (GH-6058) 2018-03-10 19:09:07 +02:00
streams.py bpo-32034: Make IncompleteReadError & LimitOverrunError pickleable GH-4409 (#4411) 2017-11-15 19:28:25 -05:00
subprocess.py bpo-29704: Fix asyncio.SubprocessStreamProtocol closing (#405) 2017-03-02 23:31:17 -05:00
tasks.py [3.6] bpo-33584: Fix several minor bugs in asyncio. (GH-7003) (#7006) 2018-05-20 17:33:55 +03:00
test_utils.py [3.6] bpo-31250: test_asyncio: fix dangling threads (#3517) 2017-09-12 14:18:23 -07:00
transports.py asyncio: Add set_protocol / get_protocol methods to Transports 2016-09-11 21:11:02 -04:00
unix_events.py bpo-26133: Fix typos (GH-5010) (#5014) 2017-12-26 12:29:29 +02:00
windows_events.py Issue #28448: Fix C implemented asyncio.Future didn't work on Windows 2016-10-21 12:30:15 +09:00
windows_utils.py Add a source parameter to warnings.warn() 2016-03-23 00:28:08 +01:00