32
Concurrency support library
[thread]
32.11
Safe reclamation
[saferecl]
32.11.2
Read-copy update (RCU)
[saferecl.rcu]
32.11.2.4
Class
rcu_
domain
[saferecl.rcu.domain]
32.11.2.4.2
Member functions
[saferecl.rcu.domain.members]
🔗
void
lock
(
)
noexcept
;
1
#
Effects
: Opens a region of RCU protection
.
2
#
Remarks
: Calls to
lock
do not introduce a data race (
[intro.
races]
) involving
*
this
.
🔗
bool
try_lock
(
)
noexcept
;
3
#
Effects
: Equivalent to
lock
(
)
.
4
#
Returns
:
true
.
🔗
void
unlock
(
)
noexcept
;
5
#
Preconditions
: A call to
lock
that opened an unclosed region of RCU protection is sequenced before the call to
unlock
.
6
#
Effects
: Closes the unclosed region of RCU protection that was most recently opened
.
May invoke scheduled evaluations in
*
this
.
7
#
[
Note
1
:
If such evaluations acquire resources held across any invocation of
unlock
on
*
this
, deadlock can occur
.
—
end note
]
8
#
Remarks
: Calls to
unlock
do not introduce a data race involving
*
this
.
[
Note
2
:
Evaluation of scheduled evaluations can still cause a data race
.
—
end note
]