The comment in the last code in 8.1. Races says "This is a race condition", but the description right above says "We can cause a data race". Which one is correct?
I guess it doesn't cause a data race, because all of the accesses to the AtomicUsize are synchronized, so the third requirement of a data race "one or more of them is unsynchronized" is not met.