The <jss/synchronized_value.hpp> header provides the jss::synchronized_value<>
class template, which wraps a single
object so that only one thread may access it at a time.
namespace jss { template<typename T> class synchronized_value; template<typename T> class update_guard; template<typename Func,typename ... ValueTypes> decltype(std::declval<Func&>()(std::declval<ValueTypes&>()...)) apply(Func&& f,synchronized_value<ValueTypes>& ... sv); }