Skip to content
Merged
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 19 additions & 4 deletions src/main/java/software/amazon/awssdk/crt/CrtResource.java
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ public void removeReferenceTo(CrtResource resource) {
return;
}

resource.decRef();
resource.decRef(this.getClass().getCanonicalName(), id);
}

/**
Expand Down Expand Up @@ -280,12 +280,21 @@ public void close() {
/**
* Decrements the reference count to this resource. If zero is reached, begins (and possibly completes) the resource's
* cleanup process.
* @param decRefInstigator Canonical Name of instigating CrtResource
* @param decRefInstigatorId id of instigating CrtResource
*/
public void decRef() {
public void decRef(String decRefInstigator, long decRefInstigatorId) {
Comment thread
sbSteveK marked this conversation as resolved.
Outdated
int remainingRefs = refCount.decrementAndGet();

if (debugNativeObjects) {
Log.log(ResourceLogLevel, Log.LogSubject.JavaCrtResource, String.format("Closing instance of class %s(%d) with %d remaining refs", this.getClass().getCanonicalName(), id, remainingRefs));
if (decRefInstigator != null) {
Log.log(ResourceLogLevel, Log.LogSubject.JavaCrtResource, String.format(
"DecRef instance of class %s(%d) called by %s(%d). %d remaining refs", this.getClass().getCanonicalName(),
id, decRefInstigator, decRefInstigatorId, remainingRefs));
} else {
Log.log(ResourceLogLevel, Log.LogSubject.JavaCrtResource, String.format("DecRef instance of class %s(%d) via self.close(). %d remaining refs",
this.getClass().getCanonicalName(), id, remainingRefs));
}
}

if (remainingRefs != 0) {
Expand All @@ -298,6 +307,12 @@ public void decRef() {
releaseReferences();
}
}
/**
* Decrements the reference count to this resource.
*/
public void decRef() {
decRef(null, -1);
}

/**
* Decrements the ref counts for all resources referenced by this resource. Most resources will have this called
Expand All @@ -311,7 +326,7 @@ protected void releaseReferences() {

synchronized(this) {
for (CrtResource resource : referencedResources) {
resource.decRef();
resource.decRef(this.getClass().getCanonicalName(), id);
}

referencedResources.clear();
Expand Down
Loading