frame_processor: allow pushing more frames after EndFrame
This can be useful for testing purposes. In real practice, there shouldn't be any frames after an EndFrame is pushed.
This commit is contained in:
@@ -293,8 +293,7 @@ class FrameProcessor:
|
|||||||
await self.__input_frame_task
|
await self.__input_frame_task
|
||||||
|
|
||||||
async def __input_frame_task_handler(self):
|
async def __input_frame_task_handler(self):
|
||||||
running = True
|
while True:
|
||||||
while running:
|
|
||||||
try:
|
try:
|
||||||
if self.__should_block_frames:
|
if self.__should_block_frames:
|
||||||
logger.trace(f"{self}: frame processing paused")
|
logger.trace(f"{self}: frame processing paused")
|
||||||
@@ -311,8 +310,6 @@ class FrameProcessor:
|
|||||||
if callback:
|
if callback:
|
||||||
await callback(self, frame, direction)
|
await callback(self, frame, direction)
|
||||||
|
|
||||||
running = not isinstance(frame, EndFrame)
|
|
||||||
|
|
||||||
self.__input_queue.task_done()
|
self.__input_queue.task_done()
|
||||||
except asyncio.CancelledError:
|
except asyncio.CancelledError:
|
||||||
logger.trace(f"{self}: cancelled input task")
|
logger.trace(f"{self}: cancelled input task")
|
||||||
@@ -330,12 +327,10 @@ class FrameProcessor:
|
|||||||
await self.__push_frame_task
|
await self.__push_frame_task
|
||||||
|
|
||||||
async def __push_frame_task_handler(self):
|
async def __push_frame_task_handler(self):
|
||||||
running = True
|
while True:
|
||||||
while running:
|
|
||||||
try:
|
try:
|
||||||
(frame, direction) = await self.__push_queue.get()
|
(frame, direction) = await self.__push_queue.get()
|
||||||
await self.__internal_push_frame(frame, direction)
|
await self.__internal_push_frame(frame, direction)
|
||||||
running = not isinstance(frame, EndFrame)
|
|
||||||
self.__push_queue.task_done()
|
self.__push_queue.task_done()
|
||||||
except asyncio.CancelledError:
|
except asyncio.CancelledError:
|
||||||
logger.trace(f"{self}: cancelled push task")
|
logger.trace(f"{self}: cancelled push task")
|
||||||
|
|||||||
Reference in New Issue
Block a user