com.yahoo.concurrent.classlock.ClassLock Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of vespajlib Show documentation
Show all versions of vespajlib Show documentation
Library for use in Java components of Vespa. Shared code which do
not fit anywhere else.
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.concurrent.classlock;
/**
* An acquired lock which is released on close
*
* @author valerijf
*/
public class ClassLock implements AutoCloseable {
private final Class> clazz;
private final ClassLocking classLocking;
ClassLock(ClassLocking classLocking, Class> clazz) {
this.classLocking = classLocking;
this.clazz = clazz;
}
/**
* Releases this lock
*
* @throws IllegalArgumentException if this lock has already been released
*/
@Override
public void close() {
classLocking.unlock(clazz, this);
}
}