xref: /OpenGrok/opengrok-indexer/src/main/java/org/opengrok/indexer/util/ResourceLock.java (revision 4151dbf5c28985f406f4f07f1c40626ac31346b4)
1*4151dbf5SChris Fraire /*
2*4151dbf5SChris Fraire  * This work is licensed under the Creative Commons Attribution-ShareAlike 4.0
3*4151dbf5SChris Fraire  * International License. To view a copy of this license, visit
4*4151dbf5SChris Fraire  * https://creativecommons.org/licenses/by-sa/4.0/ or send a letter to
5*4151dbf5SChris Fraire  * Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
6*4151dbf5SChris Fraire  *
7*4151dbf5SChris Fraire  * Copyright (c) 2017, https://stackoverflow.com/users/7583219/skoskav
8*4151dbf5SChris Fraire  * Copyright (c) 2011, https://stackoverflow.com/questions/6965731/are-locks-autocloseable
9*4151dbf5SChris Fraire  * Portions Copyright (c) 2019, Chris Fraire <cfraire@me.com>.
10*4151dbf5SChris Fraire  *
11*4151dbf5SChris Fraire  * Used under CC 4 with modifications noted as follows as required by license:
12*4151dbf5SChris Fraire  * 2019-09-10 -- cfraire@me.com, solely Javadoc changes.
13*4151dbf5SChris Fraire  */
14*4151dbf5SChris Fraire 
15*4151dbf5SChris Fraire package org.opengrok.indexer.util;
16*4151dbf5SChris Fraire 
17*4151dbf5SChris Fraire import java.util.concurrent.locks.Lock;
18*4151dbf5SChris Fraire 
19*4151dbf5SChris Fraire /**
20*4151dbf5SChris Fraire  * Represents an API for try-with-resources management of a {@link Lock}.
21*4151dbf5SChris Fraire  */
22*4151dbf5SChris Fraire public interface ResourceLock extends AutoCloseable {
23*4151dbf5SChris Fraire 
24*4151dbf5SChris Fraire     /**
25*4151dbf5SChris Fraire      * Unlocking doesn't throw any checked exception.
26*4151dbf5SChris Fraire      */
27*4151dbf5SChris Fraire     @Override
close()28*4151dbf5SChris Fraire     void close();
29*4151dbf5SChris Fraire }
30