- if (
- BaseChromecast.refresh_ts is None
- or (now - BaseChromecast.refresh_ts).total_seconds() > 60
- ):
- logger.debug('Refreshing the shared chromecast info list')
- BaseChromecast.ccasts, BaseChromecast.browser = pychromecast.get_chromecasts()
- atexit.register(BaseChromecast.browser.stop_discovery)
- BaseChromecast.refresh_ts = now
+ with BaseChromecast.lock as l:
+ if (
+ BaseChromecast.refresh_ts is None
+ or (now - BaseChromecast.refresh_ts).total_seconds() > 60
+ ):
+ logger.debug('Refreshing the shared chromecast info list')
+ if BaseChromecast.browser is not None:
+ BaseChromecast.browser.stop_discovery()
+ BaseChromecast.ccasts, BaseChromecast.browser = pychromecast.get_chromecasts(
+ timeout=15.0
+ )
+ atexit.register(BaseChromecast.browser.stop_discovery)
+ BaseChromecast.refresh_ts = now