On Sunday, 16 November 2014 at 13:58:19 UTC, Etienne wrote:
After thinking about how shared objects should work with the GC, it's become obvious that the GC should be optimized for local data. Anything shared would have to be manually managed, because the biggest slowdown of all is stopping the world to facilitate concurrency.
If you go for thread local garbage collection then there is no reason for being more general and support per-data-structure garbage collection as well. That's more useful, it can be used for collecting cycles in graphs. Just let the application initiate collection when there are no reference pointing into it.
But keep in mind that you also have to account for fibers that move between threads.
