Examples of non-blocking data structures and relativistic programming techniques including the classic Read-Copy-Update pattern in C#