Ruling out arbitrary cost copy construction?

Michel Fortin michel.fortin at michelf.com
Sat Oct 30 19:40:00 PDT 2010


On 2010-10-30 20:49:38 -0400, Andrei Alexandrescu 
<SeeWebsiteForEmail at erdani.org> said:

> On 10/30/10 2:24 CDT, Don wrote:
>> At the moment, I think it's impossible.
>> Has anyone succesfully implemented refcounting in D? As long as bug 3516
>> (Destructor not called on temporaries) remains open, it doesn't seem to
>> be possible.
>> Is that the only blocker, or are there others?
> 
> I managed to define and use RefCounted in Phobos. File also uses 
> hand-made reference counting. I think RefCounted is a pretty good 
> abstraction (unless it hits the bug you mentioned.)

I like the idea of RefCounted as a way to automatically make things 
reference counted.

But like File and many similar ref-counted structs, it has this race 
condition (bug 4624) when stored inside the GC heap. Currently, most of 
Phobos's ref-counted structs are race-free only when they reside on the 
stack or if your program has only one thread (because the GC doesn't 
spawn threads if I'm correct).

It's a little sad that the language doesn't prevent races in 
destructors (bug 4621).

-- 
Michel Fortin
michel.fortin at michelf.com
http://michelf.com/



More information about the Digitalmars-d mailing list