Idea #1 on integrating RC with GC
deadalnix
deadalnix at gmail.com
Tue Feb 4 17:12:37 PST 2014
On Tuesday, 4 February 2014 at 23:51:35 UTC, Andrei Alexandrescu
wrote:
> Consider we add a library slice type called RCSlice!T. It would
> have the same primitives as T[] but would use reference
> counting through and through. When the last reference count is
> gone, the buffer underlying the slice is freed. The underlying
> allocator will be the GC allocator.
>
> Now, what if someone doesn't care about the whole RC thing and
> aims at convenience? There would be a method .toGC that just
> detaches the slice and disables the reference counter (e.g. by
> setting it to uint.max/2 or whatever).
>
> Then people who want reference counting say
>
> auto x = fun();
>
> and those who don't care say:
>
> auto x = fun().toGC();
>
>
> Destroy.
>
> Andrei
RC need GC to collect loops. So you want to have the GC at the
lowest level.
That being understood, I'd rather connect things the other way
around.
auto x = foo();
auto x = foo().toRC();
More information about the Digitalmars-d
mailing list