/** Run inside a Lock */ public static <V> V callWithLock(Lock lock, Supplier<V> r) { return callWithBeforeAfter(r, ()->lock.lock(), ()->lock.unlock()) ; }
/** Run inside a Lock */ public static <V> V callWithLock(Lock lock, Supplier<V> r) { return callWithBeforeAfter(r, ()->lock.lock(), ()->lock.unlock()) ; }