Swift book outlines 3 conditions for conflicting access in Memory safety chapter:
Specifically, a conflict occurs if you have two accesses that meet all of the following conditions:
- At least one is a write access or a nonatomic access.
- They access the same location in memory.
- Their durations overlap.
I am confused with the second part of first point that mentions nonatomic access. Is this referring to concurrent nonatomic access? And even if so, isn't at least one write access still required for conflict?
Are there any practical examples where nonatomic access is involved in conflict?