Locking avoidance - RCU Read-copy-update works through pointers To update a data structure Allocate and initialize new version Copy pointer to old version Set pointer to new version Wait until safe time to free old version When is a "safe time"? After every processor has scheduled once