···134134Lockless programming is considered by many to be more difficult than135135lock-based programming, but there are a few lockless design patterns that136136have been built out into an API. One of these APIs is sequence locking.137137-Although this APIs can be used in extremely complex ways, there are simple137137+Although this API can be used in extremely complex ways, there are simple138138and effective ways of using it that avoid the need to pay attention to139139memory ordering.140140···205205operations from the previous section only when there are no racing206206accesses. Otherwise, use only fully ordered operations when accessing207207or modifying the variable. This approach guarantees that code prior208208-to a given access to that variable will be seen by all CPUs has having208208+to a given access to that variable will be seen by all CPUs as having209209happened before any code following any later access to that same variable.210210211211Please note that per-CPU functions are not atomic operations and