Учитывая этот код, как я могу убедиться, что get_model()
всегда можно вызвать без ожидания, если reload_lock
не активен?
Предпочтительно, я не хочу, чтобы get_model()
вызвал reload_lock
, поскольку все потоки могут свободно вызывать этот метод, если приложение не перезагружает свои модели.
import threading
reload_lock = threading.Lock()
def get_model(name):
# Normally this can be called, unless reload_models() is active
# e.g. "if reload_lock.locked() -> wait until lock is released.
...
def reload_models():
try:
reload_lock.acquire()
... # reload models
finally:
reload_lock.release()