pub fn with_exclusive_read_lock<T, E, F>(file_path: &Path, f: F) -> Result<T, E>
where F: FnOnce(&mut LockedFile) -> Result<T, E>, E: From<Error>,