Template Class mixed_multiguard¶
Defined in File rw_spinlock.hpp
Class Documentation¶
-
template<size_type
S
>
classlegion::core::async
::
mixed_multiguard
¶ RAII guard that uses multiple ::async::readonly_rw_spinlocks to lock them all for user specified permissions. (similar to std::lock)
- Note
Read-only operations can happen simultaneously without waiting for each other. Read-only operations will only wait for Read-Write operations to be finished.
- Note
Read-Write operations cannot happen simultaneously and will wait for each other. Read-Write operations will also wait for any Read-only operations to be finished. legion::core::async::rw_spinlock
Public Functions
-
template<typename ...
types
>
inline explicitmixed_multiguard
(types&&... arguments)¶ Creates readonly multi-guard and locks for specified permissions.
- Note
Argument order should be as follows: (rw_spinlock&, lock_state, rw_spinlock&, lock_state, …)
-
mixed_multiguard
(const mixed_multiguard&) = delete¶
-
mixed_multiguard
(mixed_multiguard&&) = delete¶
-
inline
~mixed_multiguard
()¶ RAII style unlocks lock from specified permissions.
-
mixed_multiguard &
operator=
(mixed_multiguard&&) = delete¶
-
mixed_multiguard &
operator=
(const mixed_multiguard&) = delete¶