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;
?