Bildirim
C atomic_exchange(volatile A *obj, C des); (C11)
C atomic_exchange_explicit(volatile A *obj, C des, memory_order order); (C11)
Açıklama
Obj parametresi ile gösterilen bellek içeriğini des ile gösterilen bellek içeriği ile değiştirir ve daha önce obj parametresinde yer alan değeri geri döndürür. İşlem okuma-değiştirme-yazma işlemidir.
Bu fonksiyon A türündeki tüm atomik değişken türleri için tanımlanan genel bir fonksiyondur.
Parametreler
obj: Değiştirilecek atomik değişken işaretçisidir.
des: Atomik değişkene yüklenecek değeri gösterir.
order: Bu işlem için bellek senkronizasyon sıralaması: Tüm değerlere izin verilir.
Dönüş değeri
İşlem öncesinde obj parametresinde yer alan atomik değişken değeri geri döndürülür.