У меня есть задача, примерно такая:
@task()
def async_work(info):
...
В любой момент я могу вызвать async_work с некоторой информацией. По какой-то причине мне нужно убедиться, что одновременно выполняется только одно async_work, другой запрос на вызов должен ждать.
Итак, я придумал следующий код:
is_locked = False
@task()
def async_work(info):
while is_locked:
pass
is_locked = True
...
is_locked = False
Но он говорит, что он недействителен для доступа к локальным переменным... Как его решить?