Thread GC non "stop-the-world"
digitalmars-d at puremagic.com
Wed Sep 24 01:13:14 PDT 2014
On Tuesday, 23 September 2014 at 18:39:09 UTC, Oscar Martin wrote:
> On Tuesday, 23 September 2014 at 01:58:50 UTC, Rikki Cattermole
>> Short, I dislike pretty much all changes to __gshared/shared.
>> Breaks too many things.
>> Atleast with Cmsed, (I'm evil here) where I use __gshared
>> essentially as a read only variable but modifiable when
>> starting up (to modify need synchronized, to read doesn't).
> Yeah, these changes break many things, and so are not suitable
> for D2. My intention was only to point out how expensive is for
> the GC to deal with shared memory.
> Come to think a little more: what if each thread can have its
> own GC, but by default all use the current GC (this would
> require minimal changes to druntime). "__gshared", "shared" and
> "immutable", continue as now, which does not break anything. If
> I as a programmer take care of managing (either manually or
> through reference counting) all of the shared memory
> ("__gshared", "shared" or "immutable") that can be referenced
> from multiple threads, I could replace in my program the global
> GC by a indiviual thread GC
> I'll try to implement a GC optimized for a thread and try that
There can also be a shared _and_ a local GC at the same time, and
a thread could opt from the shared GC (or choose not to opt in by
not allocating from the shared heap).
More information about the Digitalmars-d