On Tuesday, 23 September 2014 at 16:47:09 UTC, David Nadlinger
wrote:
On Tuesday, 23 September 2014 at 10:38:29 UTC, Kagamin wrote:
The question is how thread-local GC will account for data
passed to another thread.
I was briefly discussing this with Andrei at (I think) DConf
2013. I suggested moving data to a separate global GC heap on
casting stuff to shared. Assigning types with indirections to a
__gshared variable might also trigger this, unless we can find
a better design. IIRC, Andrei dismissed this as impractical due
to the overhead and need for precise scanning. I still like to
think that it would be worth it, though, even if I can't spare
the time for looking into an implementation right now.
David
Yes, it could be a palliative measure, and yes, it require
precise scanning. I do not think it is easy to implement on the
stack.
And in any case I believe the problem is to have multiple
references to the same object from different threads, which
forces you to "stop-the-world". That problem still exist