9 #include "helics/compiler-config.h"
10 #ifndef HAVE_SHARED_TIMED_MUTEX
11 # ifndef HAVE_SHARED_MUTEX
12 # define LIBGUARDED_NO_DEFAULT 1
15 #include "gmlc/libguarded/atomic_guarded.hpp"
16 #include "gmlc/libguarded/guarded.hpp"
17 #include "gmlc/libguarded/ordered_guarded.hpp"
18 #include "gmlc/libguarded/shared_guarded.hpp"
22 using guarded = gmlc::libguarded::guarded<T>;
25 using atomic_guarded = gmlc::libguarded::atomic_guarded<T>;
31 using ordered_guarded_m = gmlc::libguarded::ordered_guarded<T, std::mutex>;
33 #ifdef HAVE_SHARED_MUTEX
38 using ordered_guarded = gmlc::libguarded::ordered_guarded<T, std::shared_mutex>;
40 # ifdef HAVE_SHARED_TIMED_MUTEX
45 using ordered_guarded = gmlc::libguarded::ordered_guarded<T, std::shared_timed_mutex>;
52 using ordered_guarded = gmlc::libguarded::ordered_guarded<T, std::mutex>;