Fix an issue where the upstream ServiceSwitcherFilter wouldn't get updated with the current active service
This commit is contained in:
@@ -112,6 +112,11 @@ class ServiceSwitcher(ParallelPipeline, Generic[StrategyType]):
|
|||||||
"""Process a frame through the filter, handling special internal filter-updating frames."""
|
"""Process a frame through the filter, handling special internal filter-updating frames."""
|
||||||
if isinstance(frame, ServiceSwitcher.ServiceSwitcherFilterFrame):
|
if isinstance(frame, ServiceSwitcher.ServiceSwitcherFilterFrame):
|
||||||
self.active_service = frame.active_service
|
self.active_service = frame.active_service
|
||||||
|
# Two ServiceSwitcherFilters "sandwich" a service. Push the
|
||||||
|
# frame only to update the other side of the sandwich, but
|
||||||
|
# otherwise don't let it leave the sandwich.
|
||||||
|
if direction == self._direction:
|
||||||
|
await self.push_frame(frame, direction)
|
||||||
return
|
return
|
||||||
|
|
||||||
await super().process_frame(frame, direction)
|
await super().process_frame(frame, direction)
|
||||||
|
|||||||
Reference in New Issue
Block a user