Since it’s not possible for the reference count of an object in memory to go from 0 to 1 isn’t concurrency a non-issue? The worst that could happen is that you don’t free up some memory that you would otherwise have by running it synchronously but it would just get freed in the next GC. Am I crazy here?
Tracing garbage collection is parallelizable, that is how all modern implementations work.<p>If you mean reference counting GC implementations, there are also paralleziable implementations, with help of lock free data structures or hazard pointers.<p>You can start by having a look at "The Garbage Collection Handbook".<p><a href="http://gchandbook.org/" rel="nofollow">http://gchandbook.org/</a>