com.eventsourcing.LockProvider Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of eventsourcing-core Show documentation
Show all versions of eventsourcing-core Show documentation
Event capture and querying framework for Java
/**
* Copyright (c) 2016, All Contributors (see CONTRIBUTORS file)
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
package com.eventsourcing;
import com.google.common.util.concurrent.Service;
import java.util.function.Supplier;
/**
* Provides a mechanism for locks (see {@link Lock})
*/
public interface LockProvider extends Service {
/**
* Instantiates a new lock and locks it.
*
* @param lock
* @return new lock
*/
Lock lock(Object lock);
default T withLock(Object lock, Supplier supplier) {
Lock l = lock(lock);
T t = supplier.get();
l.unlock();
return t;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy