21 Aralık 2020 Pazartesi

std::memory_order Consume ve Release

Giriş 
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