#pragma once #include namespace chatterino { namespace util { template class MutexValue { mutable std::mutex mutex; T value; public: MutexValue() { } MutexValue(T &&val) : value(val) { } T get() const { std::lock_guard guard(this->mutex); return this->value; } void set(const T &val) { std::lock_guard guard(this->mutex); this->value = val; } }; } // namespace util } // namespace chatterino