pub fn lock_shared(f: &File) -> Result<()>
Blocking shared lock: waits only for an exclusive holder’s critical section.