Go 1.5

Ola Fosheim Grøstad via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Sat Sep 19 12:25:29 PDT 2015


On Saturday, 19 September 2015 at 19:17:38 UTC, Daniel Kozak 
wrote:
> No, collection could not occure if we speaking about current D 
> GC
> implementation. So it safe to set pointer before addRoot.

It can be triggered by another thread.

Wrong:

ptr = somestack.pop();
someglobalptr = ptr;
// ptr register flushed
// collection triggered by other thread
// other thread allocated the same memory for some other object
addRoot(ptr);

Right:

ptr = somestack.pop();
addRoot(ptr);
ensure memory barrier here;
someglobalptr = ptr;

?



More information about the Digitalmars-d-announce mailing list