Victor Stinner [Thu, 24 Jul 2014 22:55:23 +0000 (00:55 +0200)]
(Merge 3.4) asyncio: sync with Tulip
Improve stability of the proactor event loop, especially operations on
overlapped objects:
* Tulip issue 195: Don't call UnregisterWait() twice if a _WaitHandleFuture is
cancelled twice to fix a crash.
* IocpProactor.close(): cancel futures to cancel overlapped operations, instead
of cancelling directly overlapped operations. Future objects may not call
ov.cancel() if the future was cancelled or if the overlapped was already
cancelled. The cancel() method of the future may also catch exceptions. Log
also errors on cancellation.
* tests: rename "f" to "fut"
* Add a __repr__() method to IocpProactor
* Add a destructor to IocpProactor which closes it
* _OverlappedFuture.cancel() doesn't cancel the overlapped anymore if it is
done: if it is already cancelled or completed. Log also an error if the
cancellation failed.
* Add the address of the overlapped object in repr(_OverlappedFuture)
* _OverlappedFuture truncates the source traceback to hide the call to the
parent constructor (useless in debug).
Victor Stinner [Thu, 24 Jul 2014 22:54:53 +0000 (00:54 +0200)]
asyncio: sync with Tulip
Improve stability of the proactor event loop, especially operations on
overlapped objects:
* Tulip issue 195: Don't call UnregisterWait() twice if a _WaitHandleFuture is
cancelled twice to fix a crash.
* IocpProactor.close(): cancel futures to cancel overlapped operations, instead
of cancelling directly overlapped operations. Future objects may not call
ov.cancel() if the future was cancelled or if the overlapped was already
cancelled. The cancel() method of the future may also catch exceptions. Log
also errors on cancellation.
* tests: rename "f" to "fut"
* Add a __repr__() method to IocpProactor
* Add a destructor to IocpProactor which closes it
* _OverlappedFuture.cancel() doesn't cancel the overlapped anymore if it is
done: if it is already cancelled or completed. Log also an error if the
cancellation failed.
* Add the address of the overlapped object in repr(_OverlappedFuture)
* _OverlappedFuture truncates the source traceback to hide the call to the
parent constructor (useless in debug).
Victor Stinner [Thu, 24 Jul 2014 17:00:28 +0000 (19:00 +0200)]
(Merge 3.4) Issue #16133: The asynchat.async_chat.handle_read() method now
ignores BlockingIOError exceptions. Initial patch written by Xavier de Gaye.
Document also in asyncore documentation that recv() may raise BlockingIOError.
Victor Stinner [Thu, 24 Jul 2014 10:24:45 +0000 (12:24 +0200)]
(Merge 3.4) Issue #19884: readline: Disable the meta modifier key if stdout is
not a terminal to not write the ANSI sequence "\033[1034h" into stdout. This
sequence is used on some terminal (ex: TERM=xterm-256color") to enable support
of 8 bit characters.
Victor Stinner [Thu, 24 Jul 2014 10:23:56 +0000 (12:23 +0200)]
Issue #19884: readline: Disable the meta modifier key if stdout is not a
terminal to not write the ANSI sequence "\033[1034h" into stdout. This sequence
is used on some terminal (ex: TERM=xterm-256color") to enable support of 8 bit
characters.
Zachary Ware [Wed, 23 Jul 2014 19:39:50 +0000 (14:39 -0500)]
Issue #19493: Fix two uses of ctypes.test.requires (it's not a decorator)
and skip test_win32.FunctionCallTestCase.test_SEH when Python was compiled
in debug configuration or by a non-MSC compiler.
Terry Jan Reedy [Wed, 23 Jul 2014 19:01:12 +0000 (15:01 -0400)]
Issue #21597: Turtledemo text pane can now be widened to view or copy complete
lines or narrowed for small screens.
Issie #19132: Turtledemo buttons no longer disappear when window is shrun.
Patch mostly by Lita Cho (21597) using idea from patch by Jan Kanis (18132).
Issue #6167: Scrollbar.activate() now returns the name of active element if
the argument is not specified. Scrollbar.set() now always accepts only 2
arguments. Added tests for Scrollbar.activate() and Scrollbar.set().
Zachary Ware [Wed, 23 Jul 2014 17:00:29 +0000 (12:00 -0500)]
Issue #22002: Make full use of test discovery in test sub-packages.
Adds `load_package_tests` function to test.support, uses it in test_asyncio,
test_email, test_json, test_tools, test_importlib and all test_importlib
sub-packages to implement test discovery.
Victor Stinner [Mon, 21 Jul 2014 10:30:22 +0000 (12:30 +0200)]
Issue #22018: Add _testcapi.raise_signal()
- Use _testcapi.raise_signal() in test_signal
- close also os.pipe() file descriptors in some test_signal tests where they
were not closed properly
- Remove faulthandler._sigill() and faulthandler._sigbus(): reuse
_testcapi.raise_signal() in test_faulthandler