26 template <
class... GetArgs,
class... SetArgs>
27 std::tuple<GetArgs...>
get_set_mutexed(std::mutex& mut, std::tuple<GetArgs&...> get, std::tuple<SetArgs...> from_set, std::tuple<SetArgs&...> to_set)
30 std::scoped_lock lock(mut);
32 std::tuple<GetArgs...> result = get;
47 template <
class... Args>
48 std::tuple<Args...>
get_mutexed(std::mutex& mut, Args&... args)
51 std::scoped_lock lock(mut);
53 std::tuple result = std::tuple(args...);
72 std::scoped_lock lock(mut);
100 template <
class T,
class... Args>
123 std::scoped_lock lock(mut);
144 template <
class... Args>
148 std::scoped_lock lock(mut);
152 return std::tuple(args...);
170 template <
class... Args>
171 auto set_mutexed(std::mutex& mut,
const std::tuple<Args...> from, std::tuple<Args&...> to)
174 std::scoped_lock lock(mut);
All mrs_lib functions, classes, variables and definitions are contained in this namespace.
Definition attitude_converter.h:24
std::tuple< GetArgs... > get_set_mutexed(std::mutex &mut, std::tuple< GetArgs &... > get, std::tuple< SetArgs... > from_set, std::tuple< SetArgs &... > to_set)
thread-safe getter and setter for values of variables (args)
Definition mutex.h:27
std::tuple< Args... > get_mutexed(std::mutex &mut, Args &... args)
thread-safe getter for values of variables (args)
Definition mutex.h:48
void set_mutexed_impl(const T what, T &where)
base case of the variadic template for set_mutexed()
Definition mutex.h:85
auto set_mutexed(std::mutex &mut, const T what, T &where)
thread-safe setter for a variable
Definition mutex.h:120