(
lock_file: str,
mode: Literal["read", "write"],
acquired_event: EventType,
release_event: EventType | None = None,
timeout: float = -1,
blocking: bool = True,
ready_event: EventType | None = None,
)
| 20 | |
| 21 | |
| 22 | def acquire_lock( |
| 23 | lock_file: str, |
| 24 | mode: Literal["read", "write"], |
| 25 | acquired_event: EventType, |
| 26 | release_event: EventType | None = None, |
| 27 | timeout: float = -1, |
| 28 | blocking: bool = True, |
| 29 | ready_event: EventType | None = None, |
| 30 | ) -> None: |
| 31 | if ready_event: |
| 32 | ready_event.wait(timeout=10) |
| 33 | |
| 34 | lock = ReadWriteLock(lock_file, timeout=timeout, blocking=blocking) |
| 35 | ctx = lock.read_lock() if mode == "read" else lock.write_lock() |
| 36 | with ctx: |
| 37 | acquired_event.set() |
| 38 | if release_event: |
| 39 | release_event.wait(timeout=10) |
| 40 | else: |
| 41 | time.sleep(0.5) # hold lock briefly to simulate work |
| 42 | |
| 43 | |
| 44 | @contextmanager |
nothing calls this directly
no test coverage detected
searching dependent graphs…