Drop `Channel.aiter_recv()`

Internalize the implementation of this and expect client code to
iterate the `Channel` directly.

Resolves #16
reg_with_uid
Tyler Goodlet 2018-08-06 13:40:37 -04:00
parent bd14cbe082
commit 758fbc6790
2 changed files with 5 additions and 4 deletions

View File

@ -278,7 +278,7 @@ class Actor:
# worked out we'll likely want to use that!
log.debug(f"Entering msg loop for {chan} from {chan.uid}")
try:
async for msg in chan.aiter_recv():
async for msg in chan:
if msg is None: # terminate sentinel
log.debug(
f"Cancelling all tasks for {chan} from {chan.uid}")

View File

@ -87,6 +87,7 @@ class Channel:
self._destaddr = destaddr or self.squeue.raddr
# set after handshake - always uid of far end
self.uid = None
self._agen = self._aiter_recv()
def __repr__(self):
if self.squeue:
@ -134,8 +135,8 @@ class Channel:
async def __aexit__(self, *args):
await self.aclose(*args)
async def __aiter__(self):
return self.aiter_recv()
def __aiter__(self):
return self._agen
async def _reconnect(self):
"""Handle connection failures by polling until a reconnect can be
@ -166,7 +167,7 @@ class Channel:
" for re-establishment")
await trio.sleep(1)
async def aiter_recv(self):
async def _aiter_recv(self):
"""Async iterate items from underlying stream.
"""
while True: