Escaping the Tyranny of the GC: std.rcstring, first blood
Vladimir Panteleev via Digitalmars-d
digitalmars-d at puremagic.com
Sun Sep 14 19:52:35 PDT 2014
On Monday, 15 September 2014 at 02:26:19 UTC, Andrei Alexandrescu
wrote:
> The road there is long, but it starts with the proverbial first
> step.
An unrelated question, but how will reference counting work with
classes?
I've recently switched my networking library's raw memory wrapper
to reference counting (previously it just relied on the GC for
cleanup), and it was going well until I've hit a brick wall.
The thing with reference counting is it doesn't seem to make
sense to do it half-way. Everything across the ownership chain
must be reference counted, because otherwise the non-ref-counted
link will hold on to its ref-counted child objects forever (until
the next GC cycle).
In my case, the classes in my applications were holding on to my
reference-counted structs, and wouldn't let go until they were
eventually garbage-collected. I can't convert the classes to
structs because I need their inheritance/polymorphism, and I
don't see an obvious way to refcount classes (RefCounted
explicitly does not support classes).
Am I overlooking something?
More information about the Digitalmars-d
mailing list