Factor out common recv code; throw QueueEmpty exception in get_nowait
This commit is contained in:
@@ -344,23 +344,22 @@ class GmiiSink(Reset):
|
|||||||
|
|
||||||
self._init_reset(reset, reset_active_level)
|
self._init_reset(reset, reset_active_level)
|
||||||
|
|
||||||
async def recv(self, compact=True):
|
def _recv(self, frame, compact=True):
|
||||||
frame = await self.queue.get()
|
|
||||||
if self.queue.empty():
|
if self.queue.empty():
|
||||||
self.active_event.clear()
|
self.active_event.clear()
|
||||||
self.queue_occupancy_bytes -= len(frame)
|
self.queue_occupancy_bytes -= len(frame)
|
||||||
self.queue_occupancy_frames -= 1
|
self.queue_occupancy_frames -= 1
|
||||||
|
if compact:
|
||||||
|
frame.compact()
|
||||||
return frame
|
return frame
|
||||||
|
|
||||||
|
async def recv(self, compact=True):
|
||||||
|
frame = await self.queue.get()
|
||||||
|
return self._recv(frame, compact)
|
||||||
|
|
||||||
def recv_nowait(self, compact=True):
|
def recv_nowait(self, compact=True):
|
||||||
if not self.queue.empty():
|
frame = self.queue.get_nowait()
|
||||||
frame = self.queue.get_nowait()
|
return self._recv(frame, compact)
|
||||||
if self.queue.empty():
|
|
||||||
self.active_event.clear()
|
|
||||||
self.queue_occupancy_bytes -= len(frame)
|
|
||||||
self.queue_occupancy_frames -= 1
|
|
||||||
return frame
|
|
||||||
return None
|
|
||||||
|
|
||||||
def count(self):
|
def count(self):
|
||||||
return self.queue.qsize()
|
return self.queue.qsize()
|
||||||
|
|||||||
@@ -238,23 +238,22 @@ class MiiSink(Reset):
|
|||||||
|
|
||||||
self._init_reset(reset, reset_active_level)
|
self._init_reset(reset, reset_active_level)
|
||||||
|
|
||||||
async def recv(self, compact=True):
|
def _recv(self, frame, compact=True):
|
||||||
frame = await self.queue.get()
|
|
||||||
if self.queue.empty():
|
if self.queue.empty():
|
||||||
self.active_event.clear()
|
self.active_event.clear()
|
||||||
self.queue_occupancy_bytes -= len(frame)
|
self.queue_occupancy_bytes -= len(frame)
|
||||||
self.queue_occupancy_frames -= 1
|
self.queue_occupancy_frames -= 1
|
||||||
|
if compact:
|
||||||
|
frame.compact()
|
||||||
return frame
|
return frame
|
||||||
|
|
||||||
|
async def recv(self, compact=True):
|
||||||
|
frame = await self.queue.get()
|
||||||
|
return self._recv(frame, compact)
|
||||||
|
|
||||||
def recv_nowait(self, compact=True):
|
def recv_nowait(self, compact=True):
|
||||||
if not self.queue.empty():
|
frame = self.queue.get_nowait()
|
||||||
frame = self.queue.get_nowait()
|
return self._recv(frame, compact)
|
||||||
if self.queue.empty():
|
|
||||||
self.active_event.clear()
|
|
||||||
self.queue_occupancy_bytes -= len(frame)
|
|
||||||
self.queue_occupancy_frames -= 1
|
|
||||||
return frame
|
|
||||||
return None
|
|
||||||
|
|
||||||
def count(self):
|
def count(self):
|
||||||
return self.queue.qsize()
|
return self.queue.qsize()
|
||||||
|
|||||||
@@ -252,23 +252,22 @@ class RgmiiSink(Reset):
|
|||||||
|
|
||||||
self._init_reset(reset, reset_active_level)
|
self._init_reset(reset, reset_active_level)
|
||||||
|
|
||||||
async def recv(self, compact=True):
|
def _recv(self, frame, compact=True):
|
||||||
frame = await self.queue.get()
|
|
||||||
if self.queue.empty():
|
if self.queue.empty():
|
||||||
self.active_event.clear()
|
self.active_event.clear()
|
||||||
self.queue_occupancy_bytes -= len(frame)
|
self.queue_occupancy_bytes -= len(frame)
|
||||||
self.queue_occupancy_frames -= 1
|
self.queue_occupancy_frames -= 1
|
||||||
|
if compact:
|
||||||
|
frame.compact()
|
||||||
return frame
|
return frame
|
||||||
|
|
||||||
|
async def recv(self, compact=True):
|
||||||
|
frame = await self.queue.get()
|
||||||
|
return self._recv(frame, compact)
|
||||||
|
|
||||||
def recv_nowait(self, compact=True):
|
def recv_nowait(self, compact=True):
|
||||||
if not self.queue.empty():
|
frame = self.queue.get_nowait()
|
||||||
frame = self.queue.get_nowait()
|
return self._recv(frame, compact)
|
||||||
if self.queue.empty():
|
|
||||||
self.active_event.clear()
|
|
||||||
self.queue_occupancy_bytes -= len(frame)
|
|
||||||
self.queue_occupancy_frames -= 1
|
|
||||||
return frame
|
|
||||||
return None
|
|
||||||
|
|
||||||
def count(self):
|
def count(self):
|
||||||
return self.queue.qsize()
|
return self.queue.qsize()
|
||||||
|
|||||||
@@ -366,23 +366,22 @@ class XgmiiSink(Reset):
|
|||||||
|
|
||||||
self._init_reset(reset, reset_active_level)
|
self._init_reset(reset, reset_active_level)
|
||||||
|
|
||||||
async def recv(self, compact=True):
|
def _recv(self, frame, compact=True):
|
||||||
frame = await self.queue.get()
|
|
||||||
if self.queue.empty():
|
if self.queue.empty():
|
||||||
self.active_event.clear()
|
self.active_event.clear()
|
||||||
self.queue_occupancy_bytes -= len(frame)
|
self.queue_occupancy_bytes -= len(frame)
|
||||||
self.queue_occupancy_frames -= 1
|
self.queue_occupancy_frames -= 1
|
||||||
|
if compact:
|
||||||
|
frame.compact()
|
||||||
return frame
|
return frame
|
||||||
|
|
||||||
|
async def recv(self, compact=True):
|
||||||
|
frame = await self.queue.get()
|
||||||
|
return self._recv(frame, compact)
|
||||||
|
|
||||||
def recv_nowait(self, compact=True):
|
def recv_nowait(self, compact=True):
|
||||||
if not self.queue.empty():
|
frame = self.queue.get_nowait()
|
||||||
frame = self.queue.get_nowait()
|
return self._recv(frame, compact)
|
||||||
if self.queue.empty():
|
|
||||||
self.active_event.clear()
|
|
||||||
self.queue_occupancy_bytes -= len(frame)
|
|
||||||
self.queue_occupancy_frames -= 1
|
|
||||||
return frame
|
|
||||||
return None
|
|
||||||
|
|
||||||
def count(self):
|
def count(self):
|
||||||
return self.queue.qsize()
|
return self.queue.qsize()
|
||||||
|
|||||||
Reference in New Issue
Block a user