Handle no sampler subs case on history broadcasts
When the market isn't open the feed layer won't create a subscriber entry in the sampler broadcast loop and so if a manual call to ``broadcast()`` is made (like when trying to update a chart from a history prepend) we need to handle that case and just broadcast a random `-1` for now..BDincr_update_backup
							parent
							
								
									e8aaf42cc6
								
							
						
					
					
						commit
						468cd3a381
					
				| 
						 | 
					@ -146,13 +146,21 @@ async def broadcast(
 | 
				
			||||||
    # a given sample period.
 | 
					    # a given sample period.
 | 
				
			||||||
    subs = sampler.subscribers.get(delay_s, ())
 | 
					    subs = sampler.subscribers.get(delay_s, ())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    last = -1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if shm is None:
 | 
					    if shm is None:
 | 
				
			||||||
        lowest = min(sampler.ohlcv_shms.keys())
 | 
					        periods = sampler.ohlcv_shms.keys()
 | 
				
			||||||
        shm = sampler.ohlcv_shms[lowest][0]
 | 
					        # if this is an update triggered by a history update there
 | 
				
			||||||
 | 
					        # might not actually be any sampling bus setup since there's
 | 
				
			||||||
 | 
					        # no "live feed" active yet.
 | 
				
			||||||
 | 
					        if periods:
 | 
				
			||||||
 | 
					            lowest = min(periods)
 | 
				
			||||||
 | 
					            shm = sampler.ohlcv_shms[lowest][0]
 | 
				
			||||||
 | 
					            last = shm._last.value
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for stream in subs:
 | 
					    for stream in subs:
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            await stream.send({'index': shm._last.value})
 | 
					            await stream.send({'index': last})
 | 
				
			||||||
        except (
 | 
					        except (
 | 
				
			||||||
            trio.BrokenResourceError,
 | 
					            trio.BrokenResourceError,
 | 
				
			||||||
            trio.ClosedResourceError
 | 
					            trio.ClosedResourceError
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue