loolwsd/Util.hpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-)
New commits: commit 359731f0969b33a8a4f387678831baba4a12c5ae Author: Ashod Nakashian <[email protected]> Date: Sun Aug 14 00:01:45 2016 -0400 loolwsd: cleanup of RuntimeConstant class Change-Id: If3d57e73445cdb0b92c6b3721b4b7b0ca030a2d7 Reviewed-on: https://gerrit.libreoffice.org/28129 Reviewed-by: Ashod Nakashian <[email protected]> Tested-by: Ashod Nakashian <[email protected]> diff --git a/loolwsd/Util.hpp b/loolwsd/Util.hpp index f3425fe..c69315e 100644 --- a/loolwsd/Util.hpp +++ b/loolwsd/Util.hpp @@ -202,28 +202,32 @@ namespace Util std::set<std::string> _denied; }; + /// A logical constant that is allowed to initialize + /// exactly once and checks usage before initialization. template<typename T> class RuntimeConstant { T _value; - bool _initialized; + std::atomic<bool> _initialized; public: RuntimeConstant() : _value() , _initialized(false) - {} + { + } + + /// Use a compile-time const instead. + RuntimeConstant(const T& value) = delete; const T& get() { - if(_initialized) + if (_initialized) { return _value; } - else - { - throw std::runtime_error("RuntimeConstant instance read before being initialized."); - } + + throw std::runtime_error("RuntimeConstant instance read before being initialized."); } void set(const T& value) _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
