FrameProcessor: cancel input/push tasks on CancelFrame
This commit is contained in:
@@ -240,7 +240,7 @@ class FrameProcessor:
|
|||||||
elif isinstance(frame, StopInterruptionFrame):
|
elif isinstance(frame, StopInterruptionFrame):
|
||||||
self._should_report_ttfb = True
|
self._should_report_ttfb = True
|
||||||
elif isinstance(frame, CancelFrame):
|
elif isinstance(frame, CancelFrame):
|
||||||
self._cancelling = True
|
await self.__cancel(frame)
|
||||||
|
|
||||||
async def push_error(self, error: ErrorFrame):
|
async def push_error(self, error: ErrorFrame):
|
||||||
await self.push_frame(error, FrameDirection.UPSTREAM)
|
await self.push_frame(error, FrameDirection.UPSTREAM)
|
||||||
@@ -275,6 +275,11 @@ class FrameProcessor:
|
|||||||
self.__create_input_task()
|
self.__create_input_task()
|
||||||
self.__create_push_task()
|
self.__create_push_task()
|
||||||
|
|
||||||
|
async def __cancel(self, frame: CancelFrame):
|
||||||
|
self._cancelling = True
|
||||||
|
await self.__cancel_input_task()
|
||||||
|
await self.__cancel_push_task()
|
||||||
|
|
||||||
#
|
#
|
||||||
# Handle interruptions
|
# Handle interruptions
|
||||||
#
|
#
|
||||||
|
|||||||
Reference in New Issue
Block a user