summaryrefslogtreecommitdiffstats
path: root/Lib/asyncio/events.py
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2014-07-29 10:58:23 (GMT)
committerVictor Stinner <victor.stinner@gmail.com>2014-07-29 10:58:23 (GMT)
commit313a9809043ed2ed1ad25282af7169e08cdc92a3 (patch)
tree99a23db8538b3dcafb55fb1b83c838a992c969fb /Lib/asyncio/events.py
parent7eca7343a0a01ead026589d4e3828bbdee9d08a0 (diff)
downloadcpython-313a9809043ed2ed1ad25282af7169e08cdc92a3.zip
cpython-313a9809043ed2ed1ad25282af7169e08cdc92a3.tar.gz
cpython-313a9809043ed2ed1ad25282af7169e08cdc92a3.tar.bz2
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
Diffstat (limited to 'Lib/asyncio/events.py')
-rw-r--r--Lib/asyncio/events.py15
1 files changed, 10 insertions, 5 deletions
diff --git a/Lib/asyncio/events.py b/Lib/asyncio/events.py
index bddd7e3..3c7a36d 100644
--- a/Lib/asyncio/events.py
+++ b/Lib/asyncio/events.py
@@ -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