|
57 | 57 | in~\ref{res.on.exception.handling}.
|
58 | 58 |
|
59 | 59 | \begin{example}
|
60 |
| -Consider a function in this Clause that is specified to throw exceptions of type |
| 60 | +If a function in this Clause that is specified to throw exceptions of type |
61 | 61 | \tcode{system_error} and specifies error conditions that include
|
62 | 62 | \tcode{operation_not_permitted} for a thread that does not have the privilege to
|
63 |
| -perform the operation. Assume that, during the execution of this function, an \tcode{errno} |
64 |
| -of \tcode{EPERM} is reported by a POSIX API call used by the implementation. Since POSIX |
| 63 | +perform the operation, and if during the execution of this function, an \tcode{errno} |
| 64 | +of \tcode{EPERM} is reported by a POSIX API call used by the implementation, since POSIX |
65 | 65 | specifies an \tcode{errno} of \tcode{EPERM} when ``the caller does not have the privilege
|
66 | 66 | to perform the operation'', the implementation maps \tcode{EPERM} to an
|
67 | 67 | \tcode{error_condition} of \tcode{operation_not_permitted}\iref{syserr} and an exception
|
|
2516 | 2516 | \item \tcode{memory_order::consume}: a load operation performs a consume operation on the
|
2517 | 2517 | affected memory location.
|
2518 | 2518 | \begin{note}
|
2519 |
| -Prefer \tcode{memory_order::acquire}, which provides stronger guarantees |
2520 |
| -than \tcode{memory_order::consume}. Implementations have found it infeasible |
| 2519 | +\tcode{memory_order::acquire}, which provides stronger guarantees |
| 2520 | +than \tcode{memory_order::consume}, is preferred. |
| 2521 | +Implementations have found it infeasible |
2521 | 2522 | to provide performance better than that of \tcode{memory_order::acquire}.
|
2522 | 2523 | Specification revisions are under consideration.
|
2523 | 2524 | \end{note}
|
|
2606 | 2607 |
|
2607 | 2608 | \pnum
|
2608 | 2609 | \begin{note}
|
2609 |
| -We do not require that $S$ be consistent with |
| 2610 | +It is not necessary for $S$ to be consistent with |
2610 | 2611 | ``happens before''\iref{intro.races}.
|
2611 | 2612 | This allows more efficient implementation
|
2612 | 2613 | of \tcode{memory_order::acquire} and \tcode{memory_order::release}
|
|
2908 | 2909 |
|
2909 | 2910 | \pnum
|
2910 | 2911 | \begin{note}
|
2911 |
| -Hardware could require an object |
| 2912 | +Hardware can require an object |
2912 | 2913 | referenced by an \tcode{atomic_ref}
|
2913 | 2914 | to have stricter alignment\iref{basic.align}
|
2914 | 2915 | than other objects of type \tcode{T}.
|
2915 | 2916 | Further, whether operations on an \tcode{atomic_ref}
|
2916 |
| -are lock-free could depend on the alignment of the referenced object. |
| 2917 | +are lock-free can depend on the alignment of the referenced object. |
2917 | 2918 | For example, lock-free operations on \tcode{std::complex<double>}
|
2918 |
| -could be supported only if aligned to \tcode{2*alignof(double)}. |
| 2919 | +can be supported only if aligned to \tcode{2*alignof(double)}. |
2919 | 2920 | \end{note}
|
2920 | 2921 | \end{itemdescr}
|
2921 | 2922 |
|
|
0 commit comments