diff options
Diffstat (limited to 'Swiften/Base/Atomic.h')
-rw-r--r-- | Swiften/Base/Atomic.h | 55 |
1 files changed, 27 insertions, 28 deletions
diff --git a/Swiften/Base/Atomic.h b/Swiften/Base/Atomic.h index bca3683..ae065d4 100644 --- a/Swiften/Base/Atomic.h +++ b/Swiften/Base/Atomic.h @@ -1,45 +1,44 @@ /* - * Copyright (c) 2015 Isode Limited. + * Copyright (c) 2015-2016 Isode Limited. * All rights reserved. * See the COPYING file for more information. */ #pragma once -#include <boost/thread.hpp> -#include <boost/thread/locks.hpp> +#include <mutex> namespace Swift { /** - * This class template provides a read/write access synchronized wrapper for other types. + * This class template provides a read/write access synchronized wrapper for other types. */ template <typename ValueType> class Atomic { - public: - Atomic(const ValueType& v) : value_(v) { - } - - /** - * Synchronized write access. - */ - Atomic<ValueType>& operator=(const ValueType& newValue) { - boost::lock_guard<boost::mutex> lock(valueMutex_); - value_ = newValue; - return *this; - } - - /** - * Synchronized read access. - */ - operator ValueType() { - boost::lock_guard<boost::mutex> lock(valueMutex_); - return value_; - } - - private: - boost::mutex valueMutex_; - ValueType value_; + public: + Atomic(const ValueType& v) : value_(v) { + } + + /** + * Synchronized write access. + */ + Atomic<ValueType>& operator=(const ValueType& newValue) { + std::lock_guard<std::mutex> lock(valueMutex_); + value_ = newValue; + return *this; + } + + /** + * Synchronized read access. + */ + operator ValueType() { + std::lock_guard<std::mutex> lock(valueMutex_); + return value_; + } + + private: + std::mutex valueMutex_; + ValueType value_; }; } |