Have a structure declared and defined in shared file.Both threads create by the Windows API CreateThread() have visibility to the instance of it:
Atomic newbie here. My code currently looks like this (simplified):In words, my idea is to let thread_b atomically swap the shared object (double-buffering), while thread_a performs some work on it. My question: can I safely assume that the shared object will be "protected" against data races while thread_a calls doSomething()...
I have a question regarding the order of operations in the following code:Given the description of std::memory_order_acquire on the cppreference page (https://en.cppreference.com/w/cpp/atomic/memory_order), that
I have read the doc of std::memory_order_relaxed.One part of explanation of Relaxed ordering is ....and the explanation of this is said ...
Question: I'm looking for the best way to clear the lowest non-zero bit of a unsigned atomic like std::atomic_uint64_t in a threadsafe fashion without using an extra mutex or the like. In addition, I also need to know, which bit got cleared.
Should we synchronize on writing strings? Since string is immutable we will never get inconsistent state between write and read from the 2 different threads, right?
If a data structure has multiple elements in it, the atomic version of it cannot (always) be lock-free. I was told that this is true for larger types because the CPU can not atomically change the data without using some sort of lock.