std::memory_order::consume ve std::memory_order::release beraber kullanılır. Şimdiki derleyiciler consume ve release mantığını tam desteklemiyor
Örnek
Elimizde şöyle bir kod olsun
atomic<int*> Guard(nullptr);int Payload = 0;
Okuma yapan tarafta şöyle yaparız
g = Guard.load(memory_order_consume);if (g != nullptr) p = Payload;
Yazma yapan tarafta şöyle yaparız
Payload = 42;Guard.store(&payload, memory_order_release);
Hiç yorum yok:
Yorum Gönder