For cycle in RC you either do it like other RC system and break cycles manually, or create a parent owner to own every things pointing to each other and having cycles.

On Thursday, 27 July 2017 at 11:43:37 UTC, Steven Schveighoffer wrote:
This is an unworkable solution.

Not at all unworkable, it's much easier than mixed strategies.


One simple time you forget to clean up deterministically and then you corrupt memory by using members that are already cleaned up.

Once again, this is the reason of the existence of the GC-Proof-resource-class, which have the GC warn you of non-deterministic destruction at debug time.

In the very case you mention it will tell you "you have forgot to release one resource T deterministically".

Or, you disable calling destructors in the GC, and instead leak resources.

As I said in previous messages, not all resources can be destroyed by the GC: they have to fit into 3 different constraints.

I'll leave the discussion, you seem to ignore my arguments in what seems as an attempt to have the last word.

Reply via email to