26template <
class... GetArgs,
class... SetArgs>
27std::tuple<GetArgs...>
get_set_mutexed(std::mutex& mut, std::tuple<GetArgs&...> get, std::tuple<SetArgs...> from_set, std::tuple<SetArgs&...> to_set) {
29 std::scoped_lock lock(mut);
31 std::tuple<GetArgs...> result = get;
46template <
class... Args>
47std::tuple<Args...>
get_mutexed(std::mutex& mut, Args&... args) {
49 std::scoped_lock lock(mut);
51 std::tuple result = std::tuple(args...);
69 std::scoped_lock lock(mut);
96template <
class T,
class... Args>
117 std::scoped_lock lock(mut);
138template <
class... Args>
141 std::scoped_lock lock(mut);
145 return std::tuple(args...);
163template <
class... Args>
164auto set_mutexed(std::mutex& mut,
const std::tuple<Args...> from, std::tuple<Args&...> to) {
166 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:47
void set_mutexed_impl(const T what, T &where)
base case of the variadic template for set_mutexed()
Definition mutex.h:82
auto set_mutexed(std::mutex &mut, const T what, T &where)
thread-safe setter for a variable
Definition mutex.h:115