A protocol for wait-free, atomic, multi-reader shared variables