У меня заблокирована условная переменная, которая находится в состоянии ожидания.Я хочу уведомить об этом из отдельного потока, используя таймер.Блокировка получена успешно, однако при вызове notify возникает исключение о том, что блокировка не получена.
Я пробовал разные подходы в Python 2.7 и 3.6, и он ведет себя одинаково.
from threading import Timer, Lock, Condition
lock = Lock()
cond = Condition(lock)
timer = Timer(2, lambda: cond.notify_all())
with cond:
timer.start()
cond.wait()
Я получаю эту ошибку:
File "c:\python27\Lib\threading.py", line 384, in notify
raise RuntimeError("cannot notify on un-acquired lock")