From c8e320849a3b07af2fc59df36a9368bc9ca5c29b Mon Sep 17 00:00:00 2001 From: Tyler Goodlet Date: Fri, 13 Aug 2021 12:15:08 -0400 Subject: [PATCH] Add super basic support for data feed "pausing" --- piker/data/feed.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/piker/data/feed.py b/piker/data/feed.py index 07df13a1..715cf9d1 100644 --- a/piker/data/feed.py +++ b/piker/data/feed.py @@ -325,11 +325,23 @@ async def attach_feed_bus( else: sub = (stream, tick_throttle) - bus._subscribers[symbol].append(sub) + subs = bus._subscribers[symbol] + subs.append(sub) try: - await trio.sleep_forever() + async for msg in stream: + if msg == 'pause': + log.info( + f'Pausing {symbol}.{brokername} feed for {ctx.chan.uid}') + subs.remove(sub) + + elif msg == 'resume': + log.info( + f'Resuming {symbol}.{brokername} feed for {ctx.chan.uid}') + subs.append(sub) + else: + raise ValueError(msg) finally: log.info( f'Stopping {symbol}.{brokername} feed for {ctx.chan.uid}')