static AutoCloseable tempVerboseLock(S purpose default "", Lock lock) { if (lock == null) null; S desc = dropPrefix("java.util.concurrent.locks.", str(lock)) + appendIfNempty2(" for ", purpose); print("Locking " + desc + " in " + currentThread()); lock(lock); print_noFail("Locked " + desc + " in " + currentThread()); ret () -> { print_noFail("Unlocking " + desc + " in " + currentThread()); unlock(lock); }; }