MCPcopy Create free account
hub / github.com/tox-dev/filelock / chain_reader

Function chain_reader

tests/test_read_write.py:175–204  ·  view source on GitHub ↗
(
    reader_index: int,
    lock_file: str,
    release_count: Synchronized[int],
    start_signal: EventType,
    release_signal: EventType,
    next_reader_signal: EventType | None,
    writer_or_prev_signal: EventType,
)

Source from the content-addressed store, hash-verified

173
174
175def chain_reader(
176 reader_index: int,
177 lock_file: str,
178 release_count: Synchronized[int],
179 start_signal: EventType,
180 release_signal: EventType,
181 next_reader_signal: EventType | None,
182 writer_or_prev_signal: EventType,
183) -> None:
184 start_signal.wait(timeout=10)
185
186 lock = ReadWriteLock(lock_file)
187 with lock.read_lock():
188 if reader_index > 0:
189 # delay so writer can attempt acquisition while readers overlap
190 time.sleep(2)
191
192 if next_reader_signal is not None:
193 next_reader_signal.set()
194
195 if reader_index == 0:
196 # first reader holds lock briefly then signals writer
197 time.sleep(1)
198
199 writer_or_prev_signal.set()
200
201 release_signal.wait(timeout=10)
202
203 with release_count.get_lock():
204 release_count.value += 1
205
206
207@pytest.mark.timeout(40)

Callers

nothing calls this directly

Calls 3

read_lockMethod · 0.95
ReadWriteLockClass · 0.90
get_lockMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…