tmp/tmpkkned3kh/{from.md → to.md}
RENAMED
|
@@ -24,12 +24,15 @@ types are always lock-free.
|
|
| 24 |
The function `atomic_is_lock_free` ([[atomics.types.operations]])
|
| 25 |
indicates whether the object is lock-free. In any given program
|
| 26 |
execution, the result of the lock-free query shall be consistent for all
|
| 27 |
pointers of the same type.
|
| 28 |
|
| 29 |
-
|
| 30 |
-
|
|
|
|
|
|
|
|
|
|
| 31 |
addresses will communicate atomically. The implementation should not
|
| 32 |
depend on any per-process state. This restriction enables communication
|
| 33 |
by memory that is mapped into a process more than once and by memory
|
| 34 |
-
that is shared between two processes.
|
| 35 |
|
|
|
|
| 24 |
The function `atomic_is_lock_free` ([[atomics.types.operations]])
|
| 25 |
indicates whether the object is lock-free. In any given program
|
| 26 |
execution, the result of the lock-free query shall be consistent for all
|
| 27 |
pointers of the same type.
|
| 28 |
|
| 29 |
+
Atomic operations that are not lock-free are considered to potentially
|
| 30 |
+
block ([[intro.progress]]).
|
| 31 |
+
|
| 32 |
+
[*Note 1*: Operations that are lock-free should also be address-free.
|
| 33 |
+
That is, atomic operations on the same memory location via two different
|
| 34 |
addresses will communicate atomically. The implementation should not
|
| 35 |
depend on any per-process state. This restriction enables communication
|
| 36 |
by memory that is mapped into a process more than once and by memory
|
| 37 |
+
that is shared between two processes. — *end note*]
|
| 38 |
|