Bildirim
C atomic_fetch_and(volatile A *obj, M arg); (C11)
C atomic_fetch_and_explicit(volatile A *obj, M arg, memory_order order); (C11)
Açıklama
Obj parametresi ile gösterilen bellek içeriğini, arg ile gösterilen bellek içeriğinin obj değişkeninin önceki değeri ile yapılan bit seviyesindeki AND işlemi sonucu 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.
arg: Bit seviyesinde AND işlemi uygulanacak 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.