mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
asyncio: sync with Tulip
* _WaitHandleFuture.cancel() now notify IocpProactor through the overlapped object that the wait was cancelled. * Optimize IocpProactor.wait_for_handle() gets the result if the wait is signaled immediatly. * Enhance representation of Future and Future subclasses - Add "created at filename:lineno" in the representation - Add Future._repr_info() method which can be more easily overriden than Future.__repr__(). It should now be more easy to enhance Future representation without having to modify each subclass. For example, _OverlappedFuture and _WaitHandleFuture get the new "created at" information. - Use reprlib to format Future result, and function arguments when formatting a callback, to limit the length of the representation. * Fix repr(_WaitHandleFuture) * _WaitHandleFuture and _OverlappedFuture: hide frames of internal calls in the source traceback. * Cleanup ProactorIocp._poll(): set the timeout to 0 after the first call to GetQueuedCompletionStatus() * test_locks: close the temporary event loop and check the condition lock * Remove workaround in test_futures, no more needed
This commit is contained in:
parent
7eca7343a0
commit
313a980904
7 changed files with 108 additions and 72 deletions
|
@ -10,11 +10,12 @@ __all__ = ['AbstractEventLoopPolicy',
|
|||
|
||||
import functools
|
||||
import inspect
|
||||
import subprocess
|
||||
import traceback
|
||||
import threading
|
||||
import reprlib
|
||||
import socket
|
||||
import subprocess
|
||||
import sys
|
||||
import threading
|
||||
import traceback
|
||||
|
||||
|
||||
_PY34 = sys.version_info >= (3, 4)
|
||||
|
@ -36,8 +37,12 @@ def _get_function_source(func):
|
|||
|
||||
|
||||
def _format_args(args):
|
||||
# function formatting ('hello',) as ('hello')
|
||||
args_repr = repr(args)
|
||||
"""Format function arguments.
|
||||
|
||||
Special case for a single parameter: ('hello',) is formatted as ('hello').
|
||||
"""
|
||||
# use reprlib to limit the length of the output
|
||||
args_repr = reprlib.repr(args)
|
||||
if len(args) == 1 and args_repr.endswith(',)'):
|
||||
args_repr = args_repr[:-2] + ')'
|
||||
return args_repr
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue