I know this is coming from a position of extreme ignorance, but why do we have to do copy on write? What about pause on write?
Not sure how that will help? Pointers may still escape collection?
(but you get that with transactional memory, on the cache level)
