Package org.apache.solr.util
Class RefCounted<Type>
- java.lang.Object
-
- org.apache.solr.util.RefCounted<Type>
-
public abstract class RefCounted<Type> extends Object
Keep track of a reference count on a resource and close it when the count hits zero. By itself, this class could have some race conditions since there is no synchronization between the refcount check and the close. Solr's use in reference counting searchers is safe since the count can only hit zero if it's unregistered (and hence incref() will not be called again on it).
-
-
Field Summary
Fields Modifier and Type Field Description protected AtomicInteger
refcount
protected Type
resource
-
Constructor Summary
Constructors Constructor Description RefCounted(Type resource)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract void
close()
void
decref()
Type
get()
int
getRefcount()
RefCounted<Type>
incref()
-
-
-
Field Detail
-
resource
protected final Type resource
-
refcount
protected final AtomicInteger refcount
-
-
Constructor Detail
-
RefCounted
public RefCounted(Type resource)
-
-
Method Detail
-
getRefcount
public int getRefcount()
-
incref
public final RefCounted<Type> incref()
-
get
public final Type get()
-
decref
public void decref()
-
close
protected abstract void close()
-
-