#include namespace RNR { struct Lock { std::atomic lock_ = {false}; void lock() { while(lock_.exchange(true, std::memory_order_acquire)); } void unlock() { lock_.store(false, std::memory_order_release); } }; }