asyncio: sync with Tulip
* Tulip issue #196: IocpProactor._poll() clears the reference to the overlapped operation when the operation is done. It would be better to clear the reference in a new _OverlappedFuture.set_result() method, but it cannot be done yet because of a weird bug. * BaseSelectorEventLoop._write_to_self() now logs errors in debug mode.
This commit is contained in:
parent
64ba60aa57
commit
65dd69a3da
@ -120,7 +120,10 @@ class BaseSelectorEventLoop(base_events.BaseEventLoop):
|
|||||||
try:
|
try:
|
||||||
csock.send(b'\0')
|
csock.send(b'\0')
|
||||||
except OSError:
|
except OSError:
|
||||||
pass
|
if self._debug:
|
||||||
|
logger.debug("Fail to write a null byte into the "
|
||||||
|
"self-pipe socket",
|
||||||
|
exc_info=True)
|
||||||
|
|
||||||
def _start_serving(self, protocol_factory, sock,
|
def _start_serving(self, protocol_factory, sock,
|
||||||
sslcontext=None, server=None):
|
sslcontext=None, server=None):
|
||||||
|
@ -489,6 +489,11 @@ class IocpProactor:
|
|||||||
else:
|
else:
|
||||||
f.set_result(value)
|
f.set_result(value)
|
||||||
self._results.append(f)
|
self._results.append(f)
|
||||||
|
# FIXME, tulip issue #196: add _OverlappedFuture.set_result()
|
||||||
|
# method to clear the refrence, don't do it here (f may
|
||||||
|
# by a _WaitHandleFuture). Problem: clearing the reference
|
||||||
|
# in _register() if ov.pedding is False leads to weird bugs.
|
||||||
|
f._ov = None
|
||||||
ms = 0
|
ms = 0
|
||||||
|
|
||||||
def _stop_serving(self, obj):
|
def _stop_serving(self, obj):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user