Precise GC state

Dmitry Olshansky dmitry.olsh at gmail.com
Mon Nov 27 14:35:03 UTC 2017


On Monday, 27 November 2017 at 07:03:01 UTC, Ola Fosheim Grostad 
wrote:
> On Monday, 27 November 2017 at 06:47:00 UTC, Dmitry Olshansky 
> wrote:
>> Last time I check shared_ptr can be safely shared across 
>> threads, hence RC is takling synchronization and most likely 
>> atomics since locks won’t be any better.
>
> The controlblock can, but it is crazy to use shared_ptr for 
> anything more than high level ownership. It is a general 
> solution with weak pointers and extra indirection, not a 
> typical RC implementation for datastructures.

Then watch Herb’s Sutter recent talk “Leak freedom by default”. 
Now THAT guy must be out of his mind :)

I have no idea what are your typical C++ programmers.

>
>>> In C++ sync is manual, which is the only efficient way to do
>>
>> ??? shared_ptr is nowhere manual.
>
> There is an upcoming atomic_shared_ptr, but it is not in the 
> standard yet.

atomic_shared_pointer is nothing but what you seem to imply. It’s 
not manual sync for one.

>
>> My post is about particular primitive in C++ std, what could 
>> be done instead or in addition to is not important.
>
> Oh, but it is.

You keep spreading FUD on this forum, I’m still not sure of your 
reasons though.

>
> 1. D currently does not provide what you says it does.

RefCounted!T

>
> 2. Sane C++ programmers rarely use shared_ptr for more than 
> exchsnging ownership (suitable for sharing things like bitmap 
> textures).

Including across threads btw.

> There are plenty of other RC implementations for tracking 
> memory.

Like what? In standard C++ all you’ve got is unique_ptr and 
shared_ptr (and weak but that besides the point). There is maybe 
a ton of reimplementations of said things.




More information about the Digitalmars-d mailing list