#include namespace td { class Mutex { public: struct Guard { std::unique_lock guard; void reset() { guard.unlock(); } }; Guard lock() { return {std::unique_lock(mutex_)}; } private: std::mutex mutex_; }; } // namespace td