Source code for jammy.utils.filelock
import stackprinter
from filelock import FileLock, SoftFileLock
# pylint: disable=broad-except
__all__ = [
"try_filelock",
]
[docs]def try_filelock(
fn,
target_file,
is_soft=False,
timeout=20,
):
lock_obj = SoftFileLock if is_soft else FileLock
try:
with lock_obj(f"{target_file}._lock", timeout) as flock:
if flock.is_locked:
fn()
else:
print(f"try_filelock Timeout!!! {target_file}")
except Exception as exc:
stackprinter.show(exc, style="darkbg2")