A lock-free read-write lock implementation in C++