BG MVC Model View Controller eğitim serisi yayında...

Ana sayfa > Programlama > C Programlama > C standart kütüphanesi > <stdatomic.h> (C11)

<stdatomic.h> (C11)

C11 standartları ile birlikte C Programlama Dili'ne eklenen stdatomic.h başlık dosyasında Thread'ler arasında paylaşılan veri üzerinde atomik işlemler gerçekleştirmek için kullanılan fonksiyon, makrolar ve veri türü tanımlamaları yer almaktadır.

Eğer derleyici __STDC_NO_ATOMICS __ (C11) makro sabitini tanımlarsa, stdatomic.h başlık dosyası, _Atomic anahtar sözcüğü ve aşağıda gösterilen değerler kullanım dışı kalır.

Fonksiyonlar

Fonksiyon adı Açıklama

atomic_compare_exchange_strong (C11)

atomic_compare_exchange_strong_explicit (C11)

atomic_compare_exchange_weak (C11)

atomic_compare_exchange_weak_explicit (C11)

_Bool atomic_compare_exchange_strong(volatile A *obj, C *exp, C des);

Kendisine geçirilen ilk parametredeki atomik nesneyi ikinci parametre ile gösterilen bellek değeri ile karşılaştırır. Eğer bu değerler bit bazında eşitse, ilk parametre değerini üçüncü parametre değeri ile değiştirir. Aksi takdirde, ilk parametre ile gösterilen bellek değerini ikinci parametre gösterilen belleğe yükler.

atomic_exchange (C11)

atomic_exchange_explicit (C11)

C atomic_exchange(volatile A *obj, C des);

Kendisine geçirilen ilk parametredeki atomik nesneyi ikinci parametre ile verilen değer ile değiştirir ve önceki değeri geri döndürür.

atomic_fetch_add (C11)

atomic_fetch_add_explicit (C11)

C atomic_fetch_add(volatile A *obj, M arg);

Kendisine geçirilen ilk parametre değerini ikinci parametre değeri ile topladıktan sonra elde ettiği değeri ilk parametreye atar. İlk parametrenin önceki değerini geri döndürür.

atomic_fetch_and (C11)

atomic_fetch_and_explicit (C11)

C atomic_fetch_and(volatile A *obj, M arg);

Kendisine geçirilen ilk parametre değeri ile ikinci parametre değeri arasındaki AND bit işlem sonucunu ilk parametreye atar. İlk parametrenin önceki değerini geri döndürür.

atomic_fetch_or (C11)

atomic_fetch_or_explicit (C11)

C atomic_fetch_or(volatile A *obj, M arg);

Kendisine geçirilen ilk parametre değeri ile ikinci parametre değeri arasındaki OR bit işlem sonucunu ilk parametreye atar. İlk parametrenin önceki değerini geri döndürür.

atomic_fetch_sub (C11)

atomic_fetch_sub_explicit (C11)

C atomic_fetch_sub(volatile A *obj, M arg);

Kendisine geçirilen ilk parametre değerinden ikinci parametre değerini çıkardıktan sonra elde ettiği değeri ilk parametreye atar. İlk parametrenin önceki değerini geri döndürür.

atomic_fetch_xor (C11)

atomic_fetch_xor_explicit (C11)

C atomic_fetch_xor(volatile A *obj, M arg);

Kendisine geçirilen ilk parametre değeri ile ikinci parametre değeri arasındaki XOR bit işlem sonucunu ilk parametreye atar. İlk parametrenin önceki değerini geri döndürür.

atomic_flag_clear (C11)

atomic_flag_clear_explicit (C11)

void atomic_flag_clear(volatile atomic_flag *obj);

Kendisine geçirilen atomic_flag parametresine yanlış değer verir.

atomic_flag_test_and_set (C11)

atomic_flag_test_and_set_explicit (C11)

_Bool atomic_flag_test_and_set(volatile atomic_flag *obj);

Kendisine geçirilen atomic_flag parametresine doğru değer verir bir önceki değeri geri döndürür.

atomic_init (C11)

void atomic_flag_test_and_set(volatile A *obj, C des);

Kendisine geçirilen ilk parametredeki atomik nesneye ikinci parametre ile verilen değeri atar.

atomic_is_lock_free (C11)

_Bool atomic_is_lock_free(const volatile A *obj);

Kendisine geçirilen parametredeki atomik nesnenin kilitli olup olmadığını gösterir.

atomic_load (C11)

atomic_load_explicit (C11)

C atomic_load(const volatile A *obj);

Kendisine geçirilen parametredeki atomik nesnenin değerini geri döndürür.

atomic_signal_fence (C11)

void atomic_signal_fence(memory_order memory);

Bir thread ve aynı thread üzerinde yürütülen bir sinyal işleyicisi arasında, sırayla belirtildiği gibi, atomik olmayan ve serbest kalmış atomik erişimlerin bellek senkronizasyonu sıralamasını oluşturur.

atomic_store (C11)

atomic_store_explicit (C11)

void atomic_store(volatile A *obj, C des);

Kendisine geçirilen ilk parametredeki atomik nesnenin değerini ikinci parametre ile verilen değer ile değiştirir.

atomic_thread_fence (C11)

void atomic_thread_fence(memory_order memory);

İlişkili bir atomik işlem olmadan, atomik olmayan ve serbest kalmış atomik erişimlerin bellek senkronizasyonu sıralamasını oluşturur.

Veriler

Veri türü adı Açıklama
atomic_flag (C11) Atomik ikli sistem değeridir.
memory_order (C11) Bellek düzeni sabitlerini tanımlar.
atomic_bool _Atomic _Bool
atomic_char _Atomic char
atomic_schar _Atomic signed char
atomic_uchar _Atomic unsigned char
atomic_short _Atomic short
atomic_ushort _Atomic unsigned short
atomic_int _Atomic int
atomic_uint _Atomic unsigned int
atomic_long _Atomic long
atomic_ulong _Atomic unsigned long
atomic_llong _Atomic long long
atomic_ullong _Atomic unsigned long long
atomic_char16_t _Atomic char16_t
atomic_char32_t _Atomic char32_t
atomic_wchar_t _Atomic wchar_t
atomic_int_least8_t _Atomic int_least8_t
atomic_uint_least8_t _Atomic uint_least8_t
atomic_int_least16_t _Atomic int_least16_t
atomic_uint_least16_t _Atomic uint_least16_t
atomic_int_least32_t _Atomic int_least32_t
atomic_uint_least32_t _Atomic uint_least32_t
atomic_int_least64_t _Atomic int_least64_t
atomic_uint_least64_t _Atomic uint_least64_t
atomic_int_fast8_t _Atomic int_fast8_t
atomic_uint_fast8_t _Atomic uint_fast8_t
atomic_int_fast16_t _Atomic int_fast16_t
atomic_uint_fast16_t _Atomic uint_fast16_t
atomic_int_fast32_t _Atomic int_fast32_t
atomic_uint_fast32_t _Atomic uint_fast32_t
atomic_int_fast64_t _Atomic int_fast64_t
atomic_uint_fast64_t _Atomic uint_fast64_t
atomic_intptr_t _Atomic intptr_t
atomic_uintptr_t _Atomic uintptr_t
atomic_size_t _Atomic size_t
atomic_ptrdiff_t _Atomic ptrdiff_t
atomic_intmax_t _Atomic intmax_t
atomic_uintmax_t _Atomic uintmax_t

Makro sabitler

Sabit adı Standart Açıklama

ATOMIC_BOOL_LOCK_FREE

ATOMIC_CHAR_LOCK_FREE

ATOMIC_CHAR16_T_LOCK_FREE

ATOMIC_CHAR32_T_LOCK_FREE

ATOMIC_WCHAR_T_LOCK_FREE

ATOMIC_SHORT_LOCK_FREE

ATOMIC_INT_LOCK_FREE

ATOMIC_LONG_LOCK_FREE

ATOMIC_LLONG_LOCK_FREE

ATOMIC_POINTER_LOCK_FREE

C11 Verilen atomik veri tipinin kilitsiz olduğunu gösterir.
ATOMIC_FLAG_INIT C11 Yeni bir atomic_flag değeri oluşturur.
ATOMIC_VAR_INIT C11 Yeni bir atomik nesne oluşturur.
kill_dependency C11 Memory_order_consume için bağımlılık zincirini kırar.