Hello. A random search lead me here, but I figured I can answer this for you since you haven't gotten a response... The short answer is No. ThreadSanitizer sees a data race and is reporting correctly, however, depending on the situation, that is okay. It's not a false positive, but without the _Atomic keyword, it cannot make the assumption that the operation is indeed atomic. A fix for this not to show up may require a mutex and locking. This is a super expensive (relatively) change to something that *was* a single instruction, so there is a very real performance hit here. It's really overkill to use a mutex here. When writing a threaded application, sometimes we need to access data that another thread may be writing to. However, I may not care if I get the pre-updated value or the post-updated value. The only thing I care is that it *is* one of them. As long as the operation is atomic, I get what I want, however, by definition, it's still a race condition. -Jason