public bool ConcurrentReaderLock(ref Key key, ref Input input, ref Value value, ref Output dst, ref RecordInfo recordInfo, ref ReadInfo readInfo, out bool lockFailed) { if (!recordInfo.LockShared()) { lockFailed = true; return(false); } try { lockFailed = false; return(ConcurrentReaderNoLock(ref key, ref input, ref value, ref dst, ref recordInfo, ref readInfo)); } finally { recordInfo.UnlockShared(); } }