Blue Ridge errata #1: root pointers during evacuation
Published on the
Topics: garbage-collection
While trying to implement concurrent evacuation I've found out that there is a serious problem with my simple incremental low-pause garbage collector design. Implementing the phase ordering exactly as specified would corrupt the root set, resulting in not very fun to debug crashes, even with extensive heap verification and lots of assertions everywhere. Why? Let's go through the pertinent assumptions, and the way they interact, carefully, and find a solution.
Read the full article…