multithreading - Atomic pointers in c++ and passing objects between
threads
Answer
My question involves std::atomic and the data that this pointer points to. If in thread 1 I have
Object A; std:atomic
and if in thread 2 I observe that ptr points to A, can I be guaranteed that ptr->foo is 4 and bar is 2? Does the default memory model for the atomic pointer (Sequentially consistent) guarantee that assignments on non atomic (in this case A.foo) that happen before an atomic store will be seen by other threads before it sees the assignment of the same atomic.store for both cases?
If it helps or matters, I am using x64 (and I only care about this platform), gcc (with a version that supports atomics).
No comments:
Post a Comment