pub fn acquire_project_blocking(
project_root: &Path,
timeout: Duration,
) -> Result<LockGuard, LockError>Expand description
Blocking variant of acquire_project: waits out a sibling phase’s short
critical section, polling with backoff up to timeout. Returns the last
Contended error if the sibling still holds the lock at the deadline —
after timeout of waiting the holder is more likely wedged than slow, and
failing loudly beats mutating the checkout concurrently.