Victor Stinner [Sun, 22 Jun 2014 22:04:00 +0000 (00:04 +0200)]
(Merge 3.4) asyncio: BaseEventLoop._assert_is_current_event_loop() now only
raises an exception if the current loop is not None.
Guido van Rossum wrote:
"The behavior that you can set the loop to None (and keep track of it
explicitly) is part of the spec, and this should still be supported even in
debug mode. The behavior that we raise an error if you are caught having
multiple active loops per thread is just a debugging heuristic, and it
shouldn't break code that follows the spec."
Victor Stinner [Sun, 22 Jun 2014 22:03:43 +0000 (00:03 +0200)]
asyncio: BaseEventLoop._assert_is_current_event_loop() now only raises an
exception if the current loop is not None.
Guido van Rossum wrote:
"The behavior that you can set the loop to None (and keep track of it
explicitly) is part of the spec, and this should still be supported even in
debug mode. The behavior that we raise an error if you are caught having
multiple active loops per thread is just a debugging heuristic, and it
shouldn't break code that follows the spec."
Victor Stinner [Thu, 19 Jun 2014 10:59:32 +0000 (12:59 +0200)]
(Merge 3.4) Closes #21595: asyncio.BaseSelectorEventLoop._read_from_self() now
reads all available bytes from the "self pipe", not only a single byte. This
change reduces the risk of having the pipe full and so getting the innocuous
"BlockingIOError: [Errno 11] Resource temporarily unavailable" message.
Victor Stinner [Thu, 19 Jun 2014 10:59:15 +0000 (12:59 +0200)]
Closes #21595: asyncio.BaseSelectorEventLoop._read_from_self() now reads all
available bytes from the "self pipe", not only a single byte. This change
reduces the risk of having the pipe full and so getting the innocuous
"BlockingIOError: [Errno 11] Resource temporarily unavailable" message.
Victor Stinner [Tue, 17 Jun 2014 23:22:31 +0000 (01:22 +0200)]
(Merge 3.4) asyncio: Refactor test__run_once_logging() to not rely on the exact
number of calls to time.monotonic(). Use a "fast select" and a "slow select"
instead.
Victor Stinner [Tue, 17 Jun 2014 23:22:15 +0000 (01:22 +0200)]
asyncio: Refactor test__run_once_logging() to not rely on the exact number of
calls to time.monotonic(). Use a "fast select" and a "slow select" instead.
Victor Stinner [Tue, 17 Jun 2014 23:15:27 +0000 (01:15 +0200)]
(Merge 3.4) asyncio: Set __qualname__ attribute of CoroWrapper in @coroutine
decorator on Python 3.5.
- Drop __slots__ optimization of CoroWrapper to be able to set the __qualname__
attribute.
- Add tests on __name__, __qualname__ and __module__ of a coroutine function
and coroutine object.
- Fix test_tasks when run in debug mode (PYTHONASYNCIODEBUG env var set) on
Python 3.3 or 3.4
Victor Stinner [Tue, 17 Jun 2014 23:14:59 +0000 (01:14 +0200)]
asyncio: Set __qualname__ attribute of CoroWrapper in @coroutine decorator on
Python 3.5
- Drop __slots__ optimization of CoroWrapper to be able to set the __qualname__
attribute.
- Add tests on __name__, __qualname__ and __module__ of a coroutine function
and coroutine object.
- Fix test_tasks when run in debug mode (PYTHONASYNCIODEBUG env var set) on
Python 3.3 or 3.4
Victor Stinner [Tue, 17 Jun 2014 21:31:25 +0000 (23:31 +0200)]
Issue #10310: Use "unsigned int field:1" instead of "signed int field:1" in a
private structure of the _io module to fix a compiler warning (overflow when
assigning the value 1). Fix also a cast in
incrementalnewlinedecoder_setstate(). Patch written by Hallvard B Furuseth.
Terry Jan Reedy [Mon, 16 Jun 2014 23:01:01 +0000 (19:01 -0400)]
Issue #21686: add unittest for idlelib.HyperParser. Original patch by Saimadhav
Heblikar. Correct a minor 3.x bug in HyperParser discovered by testing.
Victor Stinner [Mon, 16 Jun 2014 15:12:39 +0000 (17:12 +0200)]
(Merge 3.4) Sync asyncio with Tulip: Fix test_tasks for Python 3.5
On Python 3.5, generator now gets their name from the function, no more from
the code. So we get the expected "notmuch" name instead of the generic "coro"
name.
Victor Stinner [Mon, 16 Jun 2014 15:11:05 +0000 (17:11 +0200)]
Sync asyncio with Tulip: Fix test_tasks for Python 3.5
On Python 3.5, generator now gets their name from the function, no more from
the code. So we get the expected "notmuch" name instead of the generic "coro"
name.