This repo contains the code for an interesting sychronisation primitive that can be applied to any data structure. It allows reading and writing to happen concurrently, and reading is always wait-free.
There is a much more detailed description with discussions of correctness at my blog: https://nicknash.me/2018/05/01/left-right-wait-free-reading-while-writing/