//----------------------------------------------- // shared.h: reader-priority //----------------------------------------------- #ifndef shared_h #define shared_h //----------------------------------------------- #include // std::size_t #include // std::shared_mutex //----------------------------------------------- class shared_lock { public: shared_lock(std::size_t) {} void reader_lock() { sm.lock_shared(); } void reader_unlock() { sm.unlock_shared(); } void writer_lock() { sm.lock(); } void writer_unlock() { sm.unlock(); } private: std::shared_mutex sm; }; //----------------------------------------------- #endif // shared_h