Factor out common recv code; throw QueueEmpty exception in get_nowait

This commit is contained in:
Alex Forencich
2021-03-21 21:02:28 -07:00
parent f1a89e6c12
commit a66dfea6f7
2 changed files with 14 additions and 20 deletions

View File

@@ -241,19 +241,18 @@ class StreamMonitor(StreamBase):
_valid_init = None
_ready_init = None
async def recv(self):
item = await self.queue.get()
def _recv(self, item):
if self.queue.empty():
self.active_event.clear()
return item
async def recv(self):
item = await self.queue.get()
return self._recv(item)
def recv_nowait(self):
if not self.queue.empty():
item = self.queue.get_nowait()
if self.queue.empty():
self.active_event.clear()
return item
return None
item = self.queue.get_nowait()
return self._recv(item)
async def wait(self, timeout=0, timeout_unit=None):
if not self.empty():