[dmd-concurrency] Smoke test
Robert Jacques
sandford at jhu.edu
Thu Jan 7 19:44:37 PST 2010
On Thu, 07 Jan 2010 20:28:23 -0500, Walter Bright <walter at digitalmars.com>
wrote:
> Having a per-thread gc is an optimization, not a fundamental feature of
> the concurrency model. For one thing, it precludes casting data to
> immutable. For another, it may result in excessive memory consumption as
> one thread may have a lot of unused data in its pool that is not
> available for allocation by another thread.
> _______________________________________________
> dmd-concurrency mailing list
> dmd-concurrency at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/dmd-concurrency
I would disagree; it's completely possible to allow safe casting to
immutable/shared with thread-local GCs. It just requires language support.
For example, adding a GC function which is called whenever a shared cast
occurs. In the current GC, the function does nothing and everything
proceeds as normal. With thread local GC, however, this function would
publish the casted object to a list. The local GC could then pin all
objects on the list and the shared GC could mark/sweep the list entries
instead of the objects themselves.
Also, today a thread-local mark-sweep GC equals a modern concurrent shared
GC (according to Apple). So going forward, I think thread local GCs will
be a big thing.
More information about the dmd-concurrency
mailing list