我正在尝试使用锁作为上下文来管理同步文件操作。但是,当一个函数调用另一个需要锁定的函数时,我最终将永远受阻。
例如:
from threading import Lock
lock = Lock()
def foo():
print('foo')
with lock:
print('foo-locked')
bar()
def bar():
print('bar')
with lock:
print("bar-locked") # Will not print since lock is owned by foo()
foo()
是否有一种干净的方法将一个函数的上下文传递给另一个函数?我宁愿不将锁作为参数发送,而是在某些函数中而不是在其他函数中使用上下文管理器。