Wrap browser cache in thread lock just in case.

This commit is contained in:
Jim Miller 2023-01-05 14:07:34 -06:00
parent 91d6aacc74
commit 1d5afe8cd6

View file

@ -19,6 +19,7 @@ from __future__ import absolute_import
import logging
logger = logging.getLogger(__name__)
import threading
import traceback
import time
import webbrowser
@ -36,7 +37,7 @@ class BrowserCacheDecorator(FetcherDecorator):
def __init__(self,cache):
super(BrowserCacheDecorator,self).__init__()
self.cache = cache
self.cache_lock = threading.RLock()
def fetcher_do_request(self,
fetcher,
@ -46,6 +47,7 @@ class BrowserCacheDecorator(FetcherDecorator):
parameters=None,
referer=None,
usecache=True):
with self.cache_lock:
# logger.debug("BrowserCacheDecorator fetcher_do_request")
fromcache=True
if usecache:
@ -61,7 +63,7 @@ class BrowserCacheDecorator(FetcherDecorator):
while( fetcher.getConfig("use_browser_cache_only") and
fetcher.getConfig("open_pages_in_browser",False) and
not d and sleeptries
and domain_open_tries.get(parsedUrl.netloc,0) < fetcher.getConfig("open_browser_pages_tries_limit",6)):
and domain_open_tries.get(parsedUrl.netloc,0) < fetcher.getConfig("open_browser_pages_tries_limit",6) ):
logger.debug("\n\nopen page in browser: %s\ntries:%s\n"%(url,domain_open_tries.get(parsedUrl.netloc,0)))
webbrowser.open(url)
domain_open_tries[parsedUrl.netloc] = domain_open_tries.get(parsedUrl.netloc,0) + 1
@ -99,3 +101,4 @@ class BrowserCacheDecorator(FetcherDecorator):
parameters=parameters,
referer=referer,
usecache=usecache)