All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.transferwise.common.baseutils.concurrency.LockUtils Maven / Gradle / Ivy

package com.transferwise.common.baseutils.concurrency;

import lombok.experimental.UtilityClass;

import java.util.concurrent.locks.Lock;
import java.util.function.Supplier;

@UtilityClass
public class LockUtils {
	public static void withLock(Lock lock, Runnable runnable) {
		lock.lock();
		try {
			runnable.run();
		} finally {
			lock.unlock();
		}
	}

	public static  T withLock(Lock lock, Supplier supplier) {
		lock.lock();
		try {
			return supplier.get();
		} finally {
			lock.unlock();
		}
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy