mirror of
https://github.com/python/cpython.git
synced 2025-11-01 06:01:29 +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
|
|
@ -132,6 +132,8 @@ def test_async_neither(self):
|
|||
asyncio.async('ok')
|
||||
|
||||
def test_task_repr(self):
|
||||
self.loop.set_debug(False)
|
||||
|
||||
@asyncio.coroutine
|
||||
def notmuch():
|
||||
yield from []
|
||||
|
|
@ -189,6 +191,8 @@ def notmuch():
|
|||
"<Task finished %s result='abc'>" % coro)
|
||||
|
||||
def test_task_repr_coro_decorator(self):
|
||||
self.loop.set_debug(False)
|
||||
|
||||
@asyncio.coroutine
|
||||
def notmuch():
|
||||
# notmuch() function doesn't use yield from: it will be wrapped by
|
||||
|
|
@ -252,6 +256,8 @@ def notmuch():
|
|||
self.loop.run_until_complete(t)
|
||||
|
||||
def test_task_repr_wait_for(self):
|
||||
self.loop.set_debug(False)
|
||||
|
||||
@asyncio.coroutine
|
||||
def wait_for(fut):
|
||||
return (yield from fut)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue