diff --git a/resources/lib/youtube_plugin/kodion/utils/datetime_parser.py b/resources/lib/youtube_plugin/kodion/utils/datetime_parser.py index 54212cdf6..30858adad 100644 --- a/resources/lib/youtube_plugin/kodion/utils/datetime_parser.py +++ b/resources/lib/youtube_plugin/kodion/utils/datetime_parser.py @@ -14,7 +14,7 @@ from importlib import import_module from re import compile as re_compile from sys import modules -from threading import Condition, Lock +from threading import Lock from ..exceptions import KodionException from ..logger import Logger @@ -283,30 +283,21 @@ def strptime(datetime_str, fmt=None): try: return datetime.strptime(datetime_str, fmt) except TypeError: - if '_strptime' not in modules or strptime.reloading.locked(): - if strptime.reloaded.acquire(False): + with strptime.loading: + if '_strptime' not in modules: _strptime = import_module('_strptime') modules['_strptime'] = _strptime Logger.log_error('Python strptime bug workaround' ' - https://github.com/python/cpython/issues/71587') - strptime.reloaded.notify_all() - strptime.reloaded.release() else: - strptime.reloaded.acquire() - while '_strptime' not in modules: - strptime.reloaded.wait() _strptime = modules['_strptime'] - strptime.reloaded.release() - else: - _strptime = modules['_strptime'] if timezone: return _strptime._strptime_datetime(datetime, datetime_str, fmt) return datetime(*(_strptime._strptime(datetime_str, fmt)[0][0:6])) -strptime.reloading = Lock() -strptime.reloaded = Condition(lock=strptime.reloading) +strptime.loading = Lock() def since_epoch(dt_object=None):