public abstract class AbstractReferenceCounted extends Object implements ReferenceCountedTracer, ReferenceOwner
| Modifier and Type | Field and Description |
|---|---|
protected static int |
WARN_COUNT |
protected static long |
WARN_NS |
INIT| Modifier | Constructor and Description |
|---|---|
protected |
AbstractReferenceCounted() |
protected |
AbstractReferenceCounted(boolean monitored) |
| Modifier and Type | Method and Description |
|---|---|
static void |
assertReferencesReleased() |
StackTrace |
createdHere() |
static void |
disableReferenceTracing() |
static void |
enableReferenceTracing() |
protected abstract void |
performRelease() |
protected boolean |
performReleaseInBackground() |
int |
refCount()
Returns the reference count for this resource.
|
int |
referenceId() |
void |
release(ReferenceOwner id)
Releases a resource.
|
void |
releaseLast(ReferenceOwner id)
Releases a resource and checks this is the last usage.
|
void |
reserve(ReferenceOwner id)
Reserves a resource or throws an Exception.
|
boolean |
reservedBy(ReferenceOwner owner)
Best effort check the owner has reserved it.
|
void |
reserveTransfer(ReferenceOwner from,
ReferenceOwner to) |
protected boolean |
threadSafetyCheck(boolean isUsed) |
void |
throwExceptionIfNotReleased() |
void |
throwExceptionIfReleased() |
@NotNull String |
toString() |
boolean |
tryReserve(ReferenceOwner id)
Tries to reserve a resource and returns if the resource could
be successfully reserved.
|
static void |
unmonitor(ReferenceCounted counted) |
void |
warnAndReleaseIfNotReleased() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitonReleased, onReleasedreleaseLastreferenceName, temporaryprotected static final long WARN_NS
protected static final int WARN_COUNT
protected AbstractReferenceCounted()
protected AbstractReferenceCounted(boolean monitored)
public static void enableReferenceTracing()
public static void disableReferenceTracing()
public static void assertReferencesReleased()
public static void unmonitor(ReferenceCounted counted)
public int referenceId()
referenceId in interface ReferenceOwnerpublic StackTrace createdHere()
createdHere in interface ReferenceCountedTracerpublic void throwExceptionIfNotReleased()
throwExceptionIfNotReleased in interface ReferenceCountedTracerprotected boolean performReleaseInBackground()
protected abstract void performRelease()
public void reserve(ReferenceOwner id) throws IllegalStateException
ReferenceCountedEach invocation of this method increases the reference count by one.
reserve in interface ReferenceCountedid - unique id for this reserveIllegalStateException - if the resource has already been freed.
I.e. its reference counter has as some point reached zero.public void release(ReferenceOwner id) throws IllegalStateException
ReferenceCountedEach invocation of this method decreases the reference count by one.
release in interface ReferenceCountedid - unique id for the reserve to be releasedIllegalStateException - if the resource has already been freed.
I.e. its reference counter has as some point reached zero.public void releaseLast(ReferenceOwner id) throws IllegalStateException
ReferenceCountedEach invocation of this method decreases the reference count by one.
releaseLast in interface ReferenceCountedid - unique id for the reserve to be releasedIllegalStateException - if the resource has already been freed.
I.e. its reference counter has as some point reached zero.public boolean tryReserve(ReferenceOwner id) throws IllegalStateException
ReferenceCountedEach invocation of this method increases the reference count by one.
tryReserve in interface ReferenceCountedid - unique id for this reserveIllegalStateException - if the resource has already been freed.
I.e. its reference counter has as some point reached zero.public void reserveTransfer(ReferenceOwner from, ReferenceOwner to) throws IllegalStateException
reserveTransfer in interface ReferenceCountedIllegalStateExceptionpublic int refCount()
ReferenceCountedrefCount in interface ReferenceCountedpublic void throwExceptionIfReleased()
throws IllegalStateException
throwExceptionIfReleased in interface ReferenceCountedTracerIllegalStateExceptionpublic void warnAndReleaseIfNotReleased()
warnAndReleaseIfNotReleased in interface ReferenceCountedTracerpublic boolean reservedBy(ReferenceOwner owner)
ReferenceCountedreservedBy in interface ReferenceCountedowner - to checkprotected boolean threadSafetyCheck(boolean isUsed)
Copyright © 2020. All rights reserved.