Thread GC non "stop-the-world"

Sean Kelly via Digitalmars-d digitalmars-d at puremagic.com
Fri Nov 21 08:10:34 PST 2014


On Friday, 21 November 2014 at 10:24:09 UTC, Kagamin wrote:
> On Thursday, 25 September 2014 at 21:59:15 UTC, Sean Kelly 
> wrote:
>> On Thursday, 25 September 2014 at 13:55:42 UTC, Wyatt wrote:
>>>
>>> The caveat for D being this design requires read and write 
>>> barriers and I'm pretty sure I recall correctly that those 
>>> have been vetoed several times for complexity.
>>
>> Pretty much for reasons of being able to call C functions and 
>> inline asm code.  Memory barriers may still be possible in 
>> these scenarios, but they would be extremely expensive.
>
> BTW, C usually accepts data only for reading, and writes mostly 
> strings and buffers - plain data without pointers. In both 
> cases it doesn't need to notify GC (as far as I understand 
> write barriers).

"usually" isn't sufficient if you're trying to make a GC that 
doesn't collect live data.  It's possible that we could do 
something around calls to extern (C) functions that accept a type 
containing pointers, but I'd have to give this some thought.


More information about the Digitalmars-d mailing list