public static TValue Read <T, TValue>(this ISynchronizableLock <T> sync, Func <T, TValue> read) { return(sync.Read(-1, read)); }