Set statespace defaults in `get_cached_feed()`
							parent
							
								
									eee19048f0
								
							
						
					
					
						commit
						b8815cde4a
					
				|  | @ -269,9 +269,10 @@ async def get_cached_feed( | |||
|     """ | ||||
|     # check if a cached client is in the local actor's statespace | ||||
|     ss = tractor.current_actor().statespace | ||||
|     feeds = ss['feeds'] | ||||
|     feeds = ss.setdefault('feeds', {'_lock': trio.Lock()}) | ||||
|     lock = feeds['_lock'] | ||||
|     feed_stack = ss['feed_stacks'][brokername] | ||||
|     feed_stacks = ss.setdefault('feed_stacks', {}) | ||||
|     feed_stack = feed_stacks.setdefault(brokername, contextlib.AsyncExitStack()) | ||||
|     async with lock: | ||||
|         try: | ||||
|             feed = feeds[brokername] | ||||
|  | @ -305,18 +306,15 @@ async def start_quote_stream( | |||
|     Since most brokers seems to support batch quote requests we | ||||
|     limit to one task per process for now. | ||||
|     """ | ||||
| 
 | ||||
|     actor = tractor.current_actor() | ||||
|     # set log level after fork | ||||
|     get_console_log(actor.loglevel) | ||||
|     # pull global vars from local actor | ||||
|     ss = actor.statespace | ||||
|     # broker2symbolsubs = ss.setdefault('broker2symbolsubs', {}) | ||||
|     ss.setdefault('feeds', {'_lock': trio.Lock()}) | ||||
|     feed_stacks = ss.setdefault('feed_stacks', {}) | ||||
|     symbols = list(symbols) | ||||
|     log.info( | ||||
|         f"{chan.uid} subscribed to {broker} for symbols {symbols}") | ||||
|     feed_stack = feed_stacks.setdefault(broker, contextlib.AsyncExitStack()) | ||||
|     # another actor task may have already created it | ||||
|     feed = await get_cached_feed(broker) | ||||
|     symbols2chans = feed.subscriptions[feed_type] | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue