May 26, 2018
Make objects with circular references DESTROY normally
ObjectDestroyer allows for the creation of “Destroy” handles. The handle is “attached” to the circular relationship, but is not a part of it. When the destroy handle falls out of scope, it will be cleaned up correctly, and while being cleaned up, it will also force the data structure it is attached to be destroyed as well. ObjectDestroyer can call a specified release method on an object or method DESTROY by default. Alternatively, it can execute an arbitrary user code passed to constructor as a code reference.