|
11656 | 11656 | \rSec2[saferecl.general]{General}
|
11657 | 11657 |
|
11658 | 11658 | \pnum
|
11659 |
| -This clause contains safe-reclamation techniques, which are most |
| 11659 | +Subclause \ref{saferecl} contains safe-reclamation techniques, which are most |
11660 | 11660 | frequently used to straightforwardly resolve access-deletion races.
|
11661 | 11661 |
|
11662 | 11662 | \rSec2[saferecl.rcu]{Read-copy update (RCU)}
|
|
11673 | 11673 |
|
11674 | 11674 | \pnum
|
11675 | 11675 | A class type \tcode{T} is \defn{rcu-protectable}
|
11676 |
| -if it has exactly one base class of type \tcode{rcu_obj_base<T,D>} |
| 11676 | +if it has exactly one base class of type \tcode{rcu_obj_base<T, D>} |
11677 | 11677 | for some \tcode{D}, and that base is public and non-virtual, and
|
11678 |
| -it has no base classes of type \tcode{rcu_obj_base<X,Y>} |
| 11678 | +it has no base classes of type \tcode{rcu_obj_base<X, Y>} |
11679 | 11679 | for any other combination \tcode{X}, \tcode{Y}.
|
11680 | 11680 | An object is rcu-protectable if it is of rcu-protectable type.
|
11681 | 11681 |
|
|
11731 | 11731 | }
|
11732 | 11732 | \end{codeblock}
|
11733 | 11733 |
|
11734 |
| -\rSec3[saferecl.rcu.base]{Class \tcode{rcu_obj_base}} |
| 11734 | +\rSec3[saferecl.rcu.base]{Class template \tcode{rcu_obj_base}} |
11735 | 11735 |
|
11736 | 11736 | \pnum
|
11737 | 11737 | Objects of type \tcode{T} to be protected by RCU inherit from
|
|
11793 | 11793 | \expects
|
11794 | 11794 | \tcode{*this} is
|
11795 | 11795 | a base class subobject of an object \tcode{x} of type \tcode{T}.
|
11796 |
| -The member function \tcode{rcu_obj_base<T,D>::retire} |
| 11796 | +The member function \tcode{rcu_obj_base<T, D>::retire} |
11797 | 11797 | was not invoked on \tcode{x} before.
|
11798 |
| -The assignment to \exposid{deleter} does not throw an exception. |
| 11798 | +The assignment to \exposid{deleter} does not exit via an exception. |
11799 | 11799 |
|
11800 | 11800 | \pnum
|
11801 | 11801 | \effects
|
|
11985 | 11985 | \effects
|
11986 | 11986 | May allocate memory.
|
11987 | 11987 | It is unspecified whether the memory allocation
|
11988 |
| -is performed by invoking \tcode{operator} \tcode{new}. |
| 11988 | +is performed by invoking \tcode{\keyword{operator} \keyword{new}}. |
11989 | 11989 | Initializes an object \tcode{d1} of type \tcode{D} from \tcode{std::move(d)}.
|
11990 | 11990 | Schedules the evaluation of \tcode{d1(p)} in the domain \tcode{dom};
|
11991 | 11991 | the behavior is undefined if that evaluation exits via an exception.
|
|
0 commit comments