3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-23 09:05:31 +00:00

Java API: explain the phantom references mechanics in Javadoc.

This commit is contained in:
George Karpenkov 2016-06-13 12:22:32 +02:00
parent a914822346
commit b65d83aacf

View file

@ -24,8 +24,17 @@ import java.util.IdentityHashMap;
import java.util.Map;
/**
* A queue to handle management of native memory.
*
* @param <T>
* <p><b>Mechanics: </b>once an object is created, a metadata is stored for it in
* {@code referenceMap}, and a {@link PhantomReference} is created with a
* reference to {@code referenceQueue}.
* Once the object becomes strongly unreachable, the phantom reference gets
* added by JVM to the {@code referenceQueue}.
* After each object creation, we iterate through the available objects in
* {@code referenceQueue} and decrement references for them.
*
* @param <T> Type of object stored in queue.
*/
public abstract class IDecRefQueue<T extends Z3Object> {
private final ReferenceQueue<T> referenceQueue = new ReferenceQueue<>();