diff --git a/weboob/tools/browser.py b/weboob/tools/browser.py index 1e59b3ef..a09abead 100644 --- a/weboob/tools/browser.py +++ b/weboob/tools/browser.py @@ -25,6 +25,7 @@ import re import time from logging import warning, error, debug from copy import copy +from threading import RLock from weboob.tools.parsers import get_parser @@ -160,12 +161,19 @@ class BaseBrowser(mechanize.Browser): self.last_update = 0.0 self.username = username self.password = password + self.lock = RLock() if self.password: try: self.home() except BrowserUnavailable: pass + def __enter__(self): + self.lock.acquire() + + def __exit__(self, t, v, tb): + self.lock.release() + def pageaccess(func): def inner(self, *args, **kwargs): if not self.page or self.password and not self.page.is_logged():