Sdílet prostřednictvím


<atomic> – funkce

atomic_compare_exchange_strong
atomic_compare_exchange_strong_explicit
atomic_compare_exchange_weak
atomic_compare_exchange_weak_explicit
atomic_exchange
atomic_exchange_explicit
atomic_fetch_add
atomic_fetch_add_explicit
atomic_fetch_and
atomic_fetch_and_explicit
atomic_fetch_or
atomic_fetch_or_explicit
atomic_fetch_sub
atomic_fetch_sub_explicit
atomic_fetch_xor
atomic_fetch_xor_explicit
atomic_flag_clear
atomic_flag_clear_explicit
atomic_flag_test_and_set
atomic_flag_test_and_set_explicit
atomic_init
atomic_is_lock_free
atomic_load
atomic_load_explicit
atomic_signal_fence
atomic_store
atomic_store_explicit
atomic_thread_fence
kill_dependency

atomic_compare_exchange_strong

Provede atomické operace porovnání a výměny.

template <class Ty>
inline bool atomic_compare_exchange_strong(
    volatile atomic<Ty>* Atom,
    Ty* Exp,
    Value) noexcept;

template <class Ty>
inline bool atomic_compare_exchange_strong(
    atomic<Ty>* Atom,
    Ty* Exp,
    Ty Value) noexcept;

Parametry

Atom
Ukazatel na atomic objekt, který ukládá hodnotu typu Ty.

Exp
Ukazatel na hodnotu typu Ty.

Value
Hodnota typu Ty.

Návratová hodnota

true pokud jsou hodnoty stejné, jinak false.

Poznámky

Tato metoda provádí atomické operace porovnání a výměny pomocí implicitních memory_order.memory_order_seq_cst argumentů. Další informace najdete na webu atomic_compare_exchange_strong_explicit.

atomic_compare_exchange_strong_explicit

atomic compare and exchange Provede operaci.

template <class T>
inline bool atomic_compare_exchange_strong_explicit(
    volatile atomic<Ty>* Atom,
    Ty* Exp,
    Ty Value,
    memory_order Order1,
    memory_order Order2) noexcept;

template <class Ty>
inline bool atomic_compare_exchange_strong_explicit(
    atomic<Ty>* Atom,
    Ty* Exp,
    Ty Value,
    memory_order Order1,
    memory_order Order2) noexcept;

Parametry

Atom
Ukazatel na atomic objekt, který ukládá hodnotu typu Ty.

Exp
Ukazatel na hodnotu typu Ty.

Value
Hodnota typu Ty.

Order1
První memory_order argument.

Order2
Druhý memory_order argument. Hodnota Order2 nemůže být memory_order_release nebo memory_order_acq_rel, nemůže být silnější než hodnota Order1.

Návratová hodnota

true pokud jsou hodnoty stejné, jinak false.

Poznámky

Porovná atomic compare and exchange operation hodnotu uloženou v objektu, který je odkazován na Atom hodnotu, na kterou odkazuje Exp. Pokud jsou hodnoty stejné, hodnota uložená v objektu, na který Atom odkazuje, je nahrazena Value pomocí operace čtení-úpravy zápisu a použití omezení pořadí paměti, která jsou určena Order1. Pokud hodnoty nejsou stejné, operace nahradí hodnotu, na kterou odkazuje Exp hodnota uložená v objektu, na který odkazuje Atom , a použije omezení pořadí paměti, která jsou určena Order2.

atomic_compare_exchange_weak

Provede slabou atomickou operaci porovnání a výměny .

template <class Ty>
inline bool atomic_compare_exchange_strong(
    volatile atomic<Ty>* Atom,
    Ty* Exp,
    Ty Value) noexcept;

template <class Ty>
inline bool atomic_compare_exchange_strong(
    atomic<Ty>* Atom,
    Ty* Exp,
    Ty Value) noexcept;

Parametry

Atom
Ukazatel na atomic objekt, který ukládá hodnotu typu Ty.

Exp
Ukazatel na hodnotu typu Ty.

Value
Hodnota typu Ty.

Návratová hodnota

true pokud jsou hodnoty stejné, jinak false.

Poznámky

Tato metoda provádí slabou atomické porovnání a operaci výměny, která má implicitní memory_order.memory_order_seq_cst argumenty. Další informace najdete na webu atomic_compare_exchange_weak_explicit.

atomic_compare_exchange_weak_explicit

Provede slabou atomickou operaci porovnání a výměny .

template <class Ty>
inline bool atomic_compare_exchange_weak_explicit(
    volatile atomic<Ty>* Atom,
    Ty* Exp,
    Ty Value,
    memory_order Order1,
    memory_order Order2) noexcept;

template <class Ty>
inline bool atomic_compare_exchange_weak_explicit(
    atomic<Ty>* Atom,
    Ty* Exp,
    Ty Value,
    memory_order Order1,
    memory_order Order2) noexcept;

Parametry

Atom
Ukazatel na atomic objekt, který ukládá hodnotu typu Ty.

Exp
Ukazatel na hodnotu typu Ty.

Value
Hodnota typu Ty.

Order1
První memory_order argument.

Order2
Druhý memory_order argument. Hodnota Order2 nemůže být memory_order_release nebo memory_order_acq_rel, ani nemůže být silnější než hodnota Order1.

Návratová hodnota

true pokud jsou hodnoty stejné, jinak false.

Poznámky

Silná i slabá příchuť atomic compare and exchange operation záruky, že neukládají novou hodnotu, pokud očekávané a aktuální hodnoty nejsou stejné. Silná příchuť zaručuje, že uloží novou hodnotu, pokud jsou očekávané a aktuální hodnoty stejné. Slabá příchuť se někdy může vrátit false a neukládá novou hodnotu, i když jsou aktuální a očekávané hodnoty stejné. Jinými slovy, funkce vrátí false, ale pozdější prozkoumání očekávané hodnoty může odhalit, že se nezměnila, a proto by měla mít ve srovnání s rovna.

atomic_exchange

Slouží Value k nahrazení uložené hodnoty Atom.

template <class T>
inline Ty atomic_exchange(volatile atomic<Ty>* _Atom, Ty Value) noexcept;

template <class Ty>
inline T atomic_exchange(atomic<Ty>* Atom, Ty Value) noexcept;

Parametry

Atom
Ukazatel na atomic objekt, který ukládá hodnotu typu Ty.

Value
Hodnota typu Ty.

Návratová hodnota

Uložená hodnota Atom před výměnou.

Poznámky

Funkce atomic_exchange provádí operaci čtení-úpravy zápisu za účelem výměny hodnoty, která je uložena Atom s Value, pomocí memory_order.memory_order_seq_cst.

atomic_exchange_explicit

Nahradí uloženou Atom Valuehodnotu hodnotou .

template <class Ty>
inline Ty atomic_exchange_explicit(
    volatile atomic<Ty>* Atom,
    Ty Value,
    memory_order Order) noexcept;

template <class Ty>
inline Ty atomic_exchange_explicit(
    atomic<Ty>* Atom,
    Ty Value,
    memory_order Order) noexcept;

Parametry

Atom
Ukazatel na atomic objekt, který ukládá hodnotu typu Ty.

Value
Hodnota typu Ty.

Order
Úloha memory_order.

Návratová hodnota

Uložená hodnota Atom před výměnou.

Poznámky

Funkce atomic_exchange_explicit provádí operaci čtení-úpravy-zápis výměny hodnoty, která je uložena Atom s Value, v rámci omezení paměti, které jsou určeny Order.

atomic_fetch_add

Přidá hodnotu k existující hodnotě, která je uložena v objektu atomic .

template <class T>
T* atomic_fetch_add(volatile atomic<T*>* Atom, ptrdiff_t Value) noexcept;
template <class T>
T* atomic_fetch_add(atomic<T*>* Atom, ptrdiff_t Value) noexcept;

Parametry

Atom
Ukazatel na atomic objekt, který ukládá ukazatel na typ T.

Value
Hodnota typu ptrdiff_t.

Návratová hodnota

Hodnota ukazatele obsaženého objektem atomic bezprostředně před provedením operace.

Poznámky

Funkce atomic_fetch_add provádí operaci čtení-úpravy zápisu, která atomicky přidá Value uloženou hodnotu v Atom, pomocí memory_order.memory_order_seq_cst omezení.

Pokud je atomic_addressatomický typ , Value má typ ptrdiff_t a operace zachází s uloženým ukazatelem jako s char *.

Tato operace je také přetížena pro integrální typy:

integral atomic_fetch_add(volatile atomic-integral* Atom, integral Value) noexcept;

integral atomic_fetch_add(atomic-integral* Atom, integral Value) noexcept;

atomic_fetch_add_explicit

Přidá hodnotu k existující hodnotě, která je uložena v objektu atomic .

template <class T>
T* atomic_fetch_add_explicit(
    volatile atomic<T*>* Atom,
    ptrdiff_t Value,
    memory_order Order) noexcept;

template <class T>
T* atomic_fetch_add_explicit(
    atomic<T*>* Atom,
    ptrdiff_t Value,
    memory_order Order) noexcept;

Parametry

Atom
Ukazatel na atomic objekt, který ukládá ukazatel na typ T.

Value
Hodnota typu ptrdiff_t.

Návratová hodnota

Hodnota ukazatele obsaženého objektem atomic bezprostředně před provedením operace.

Poznámky

Funkce atomic_fetch_add_explicit provádí operaci čtení-úpravy zápisu, která atomicky přidá Value uloženou hodnotu v Atom, v rámci memory_order omezení, která jsou určena Order.

Pokud je atomic_addressatomický typ , Value má typ ptrdiff_t a operace zachází s uloženým ukazatelem jako s char *.

Tato operace je také přetížena pro integrální typy:

integral atomic_fetch_add_explicit(
    volatile atomic-integral* Atom,
    integral Value,
    memory_order Order) noexcept;

integral atomic_fetch_add_explicit(
    atomic-integral* Atom,
    integral Value,
    memory_order Order) noexcept;

atomic_fetch_and

Provádí bitovou & hodnotu a existující hodnotu uloženou v objektu atomic .

template <class T>
inline T atomic_fetch_and(volatile atomic<T>* Atom, T Value) noexcept;
template <class T>
inline T atomic_fetch_and(volatile atomic<T>* Atom, T Value) noexcept;

Parametry

Atom
Ukazatel na atomic objekt, který ukládá hodnotu typu T.

Value
Hodnota typu T.

Návratová hodnota

Hodnota obsažená objektem atomic bezprostředně před provedením operace.

Poznámky

Funkce atomic_fetch_and provádí operaci čtení-úpravy zápisu, která nahradí uloženou hodnotu bitovou & Value hodnotou Atom a aktuální hodnotou, která je uložena v Atom, pomocí memory_order.memory_order_seq_cst omezení.

atomic_fetch_and_explicit

Provede bitovou & hodnotu a existující hodnotu uloženou v objektu atomic .

template <class T>
inline T atomic_fetch_and_explicit(
    volatile atomic<T>* Atom,
    T Value,
    memory_order Order) noexcept;

template <class T>
inline T atomic_fetch_and_explicit(
    volatile atomic<T>* Atom,
    T Value,
    memory_order Order) noexcept;

Parametry

Atom
Ukazatel na atomic objekt, který ukládá hodnotu typu T.

Value
Hodnota typu T.

Order
Úloha memory_order.

Návratová hodnota

Hodnota obsažená objektem atomic bezprostředně před provedením operace.

Poznámky

Funkce atomic_fetch_and_explicit provádí operaci čtení-úpravy zápisu, která nahradí uloženou hodnotu bitovou & Value hodnotou Atom a aktuální hodnotou uloženou v Atomomezení paměti, která jsou určena Order.

atomic_fetch_or

Provádí bitovou or hodnotu a existující hodnotu uloženou v objektu atomic .

template <class T>
inline T atomic_fetch_or (volatile atomic<T>* Atom, T Value) noexcept;
template <class T>
inline T atomic_fetch_or (volatile atomic<T>* Atom, T Value) noexcept;

Parametry

Atom
Ukazatel na atomic objekt, který ukládá hodnotu typu T.

Value
Hodnota typu T.

Návratová hodnota

Hodnota obsažená objektem atomic bezprostředně před provedením operace.

Poznámky

Funkce atomic_fetch_or provádí operaci čtení-úpravy zápisu, která nahradí uloženou hodnotu bitovou or Value hodnotou Atom a aktuální hodnotou, která je uložena v Atom, pomocí memory_order.memory_order_seq_cst.

atomic_fetch_or_explicit

Provádí bitovou or hodnotu a existující hodnotu uloženou v objektu atomic .

template <class T>
inline T atomic_fetch_or_explicit(
    volatile atomic<T>* Atom,
    T Value,
    memory_order Order) noexcept;

template <class T>
inline T atomic_fetch_or_explicit(
    volatile atomic<T>* Atom,
    T Value,
    memory_order Order) noexcept;

Parametry

Atom
Ukazatel na atomic objekt, který ukládá hodnotu typu T.

Value
Hodnota typu T.

Order
Úloha memory_order.

Návratová hodnota

Hodnota obsažená objektem atomic bezprostředně před provedením operace.

Poznámky

Funkce atomic_fetch_or_explicit provede operaci čtení-úpravy zápisu, která nahradí uloženou hodnotu bitovou or Value hodnotou Atom a aktuální hodnotou uloženou v Atomrámci memory_order omezení určených Order.

atomic_fetch_sub

Odečte hodnotu od existující hodnoty, která je uložena v objektu atomic .

template <class T>
T* atomic_fetch_sub(
    volatile atomic<T*>* Atom,
    ptrdiff_t Value) noexcept;

template <class T>
T* atomic_fetch_sub(
    atomic<T*>* Atom,
    ptrdiff_t Value) noexcept;

Parametry

Atom
Ukazatel na atomic objekt, který ukládá ukazatel na typ T.

Value
Hodnota typu ptrdiff_t.

Návratová hodnota

Hodnota ukazatele obsaženého objektem atomic bezprostředně před provedením operace.

Poznámky

Funkce atomic_fetch_sub provádí operaci čtení-úpravy zápisu, která atomicky odečte Value od uložené hodnoty v Atom, pomocí memory_order.memory_order_seq_cst omezení.

Pokud je atomic_addressatomický typ , Value má typ ptrdiff_t a operace zachází s uloženým ukazatelem jako s char *.

Tato operace je také přetížena pro integrální typy:

integral atomic_fetch_sub(volatile atomic-integral* Atom, integral Value) noexcept;
integral atomic_fetch_sub(atomic-integral* Atom, integral Value) noexcept;

atomic_fetch_sub_explicit

Odečte hodnotu od existující hodnoty, která je uložena v objektu atomic .

template <class T>
T* atomic_fetch_sub_explicit(
    volatile atomic<T*>* Atom,
    ptrdiff_t Value,
    memory_order Order) noexcept;

template <class T>
T* atomic_fetch_sub_explicit(
    atomic<T*>* Atom,
    ptrdiff_t Value, memory_order Order) noexcept;

Parametry

Atom
Ukazatel na atomic objekt, který ukládá ukazatel na typ T.

Value
Hodnota typu ptrdiff_t.

Návratová hodnota

Hodnota ukazatele obsaženého objektem atomic bezprostředně před provedením operace.

Poznámky

Funkce atomic_fetch_sub_explicit provádí operaci čtení-úpravy zápisu, aby atomicky odečítala Value uloženou hodnotu v Atom, v rámci memory_order omezení, která jsou určena Order.

Pokud je atomic_addressatomický typ , Value má typ ptrdiff_t a operace zachází s uloženým ukazatelem jako s char *.

Tato operace je také přetížena pro integrální typy:

integral atomic_fetch_sub_explicit(
    volatile atomic-integral* Atom,
    integral Value,
    memory_order Order) noexcept;

integral atomic_fetch_sub_explicit(
    atomic-integral* Atom,
    integral Value,
    memory_order Order) noexcept;

atomic_fetch_xor

Provádí bitovou exclusive or hodnotu a existující hodnotu uloženou v objektu atomic .

template <class T>
inline T atomic_fetch_xor(volatile atomic<T>* Atom, T Value) noexcept;

template <class T>
inline T atomic_fetch_xor(volatile atomic<T>* Atom, T Value) noexcept;

Parametry

Atom
Ukazatel na atomic objekt, který ukládá hodnotu typu T.

Value
Hodnota typu T.

Návratová hodnota

Hodnota obsažená objektem atomic bezprostředně před provedením operace.

Poznámky

Funkce atomic_fetch_xor provádí operaci čtení-úpravy zápisu, která nahradí uloženou hodnotu bitovou exclusive or Value hodnotou Atom a aktuální hodnotou, která je uložena v Atom, pomocí memory_order.memory_order_seq_cst.

atomic_fetch_xor_explicit

Provádí bitovou exclusive or hodnotu a existující hodnotu uloženou v objektu atomic .

template <class T>
inline T atomic_fetch_xor_explicit(
    volatile atomic<T>* Atom,
    T Value,
    memory_order Order) noexcept;

template <class T>
inline T atomic_fetch_xor_explicit(
    volatile atomic<T>* Atom,
    T Value,
    memory_order Order) noexcept;

Parametry

Atom
Ukazatel na atomic objekt, který ukládá hodnotu typu T.

Value
Hodnota typu T.

Order
Úloha memory_order.

Návratová hodnota

Hodnota obsažená objektem atomic bezprostředně před provedením operace.

Poznámky

Funkce atomic_fetch_xor_explicit provádí operaci čtení-úpravy zápisu, která nahradí uloženou hodnotu bitovou exclusive or Value hodnotou Atom a aktuální hodnotou uloženou v Atomrámci memory_order omezení, která jsou určena Order.

atomic_flag_clear

bool Nastaví příznak v objektu atomic_flag na false, v rámci memory_order.memory_order_seq_cst.

inline void atomic_flag_clear(volatile atomic_flag* Flag) noexcept;
inline void atomic_flag_clear(atomic_flag* Flag) noexcept;

Parametry

Flag
Ukazatel na atomic_flag objekt.

atomic_flag_clear_explicit

bool Nastaví příznak v objektu atomic_flag na false, v rámci zadaných memory_order omezení.

inline void atomic_flag_clear_explicit(volatile atomic_flag* Flag, memory_order Order) noexcept;
inline void atomic_flag_clear_explicit(atomic_flag* Flag, memory_order Order) noexcept;

Parametry

Flag
Ukazatel na atomic_flag objekt.

Order
Úloha memory_order.

atomic_flag_test_and_set

Nastaví příznak v objektu atomic_flag bool na true, v rámci omezení memory_order.memory_order_seq_cst.

inline bool atomic_flag_test_and_set(volatile atomic_flag* Flag,) noexcept;
inline bool atomic_flag_test_and_set(atomic_flag* Flag,) noexcept;

Parametry

Flag
Ukazatel na atomic_flag objekt.

Návratová hodnota

Počáteční hodnota Flag.

atomic_flag_test_and_set_explicit

bool Nastaví příznak v objektu atomic_flag na true, v rámci zadaných memory_order omezení.

inline bool atomic_flag_test_and_set_explicit(volatile atomic_flag* Flag, memory_order Order) noexcept;
inline bool atomic_flag_test_and_set_explicit(atomic_flag* Flag, memory_order Order) noexcept;

Parametry

Flag
Ukazatel na atomic_flag objekt.

Order
Úloha memory_order.

Návratová hodnota

Počáteční hodnota Flag.

atomic_init

Nastaví uloženou hodnotu v objektu atomic .

template <class Ty>
inline void atomic_init(volatile atomic<Ty>* Atom, Ty Value) noexcept;
template <class Ty>
inline void atomic_init(atomic<Ty>* Atom, Ty Value) noexcept;

Parametry

Atom
Ukazatel na atomic objekt, který ukládá hodnotu typu Ty.

Value
Hodnota typu Ty.

Poznámky

atomic_init není atomická operace. Není bezpečná pro přístup z více vláken.

atomic_is_lock_free

Určuje, jestli jsou atomické operace u objektu atomic zamčené.

template <class T>
inline bool atomic_is_lock_free(const volatile atomic<T>* Atom) noexcept;
template <class T>
inline bool atomic_is_lock_free(const atomic<T>* Atom) noexcept;

Parametry

Atom
Ukazatel na atomic objekt, který ukládá hodnotu typu T.

Návratová hodnota

truepokud jsou atomické operace Atom bez uzamčení; jinak . false

Poznámky

Atomický typ je bez uzamčení, pokud žádné atomické operace na daném typu používají zámky. Pokud tato funkce vrátí true, typ je bezpečný pro použití v obslužných rutinách signálu.

atomic_load

Načte uloženou hodnotu v objektu atomic .

template <class Ty>
inline Ty atomic_load(const volatile atomic<Ty>* Atom) noexcept;
template <class Ty>
inline Ty atomic_load(const atomic<Ty>* Atom) noexcept;

Parametry

Atom
Ukazatel na atomic objekt, který obsahuje hodnotu typu Ty.

Návratová hodnota

Načtená hodnota uložená v Atomsouboru .

Poznámky

atomic_load implicitně používá memory_order.memory_order_seq_cst.

atomic_load_explicit

Načte uloženou hodnotu v objektu atomic v zadaném memory_orderobjektu .

template <class Ty>
inline Ty atomic_load_explicit(const volatile atomic<Ty>* Atom, memory_order Order) noexcept;
template <class Ty>
inline Ty atomic_load_explicit(const atomic<Ty>* Atom, memory_order Order) noexcept;

Parametry

Atom
Ukazatel na atomic objekt, který obsahuje hodnotu typu Ty.

Order
Úloha memory_order. Nepoužívejte memory_order_release nebo memory_order_acq_rel.

Návratová hodnota

Načtená hodnota uložená v Atomsouboru .

atomic_signal_fence

Funguje jako plot – primitivní synchronizace paměti, která vynucuje řazení mezi operacemi zatížení a úložiště – mezi jinými ploty ve volajícím vlákně, které mají obslužné rutiny signálu spuštěné ve stejném vlákně.

inline void atomic_signal_fence(memory_order Order) noexcept;

Parametry

Order
Omezení řazení paměti, které určuje typ plotu.

Poznámky

Argument Order určuje typ plotu.

Hodnota Popis
memory_order_relaxed Plot nemá žádný vliv.
memory_order_consume Plot je získat plot.
memory_order_acquire Plot je získat plot.
memory_order_release Plot je uvolněný plot.
memory_order_acq_rel Plot je jak získat plot, tak uvolnit plot.
memory_order_seq_cst Plot je jak získat plot, tak uvolnit plot, a je postupně konzistentní.

atomic_store

Atomicky ukládá hodnotu v objektu atomic .

template <class Ty>
inline Ty atomic_store_explicit(const volatile atomic<Ty>* Atom, Ty Value) noexcept;
template <class Ty>
inline Ty atomic_store_explicit(const atomic<Ty>* Atom, T Value) noexcept;

Parametry

Atom
Ukazatel na atomic objekt, který obsahuje hodnotu typu Ty.

Value
Hodnota typu Ty.

Poznámky

atomic_store ukládá Value v objektu, na který odkazuje , Atomv rámci memory_order.memory_order_seq_cst omezení.

atomic_store_explicit

Atomicky ukládá hodnotu v objektu atomic .

template <class Ty>
inline Ty atomic_store_explicit(
    const volatile atomic<Ty>* Atom,
    Ty Value,
    memory_order Order) noexcept;

template <class Ty>
inline Ty atomic_store_explicit(
    const atomic<Ty>* Atom,
    T Value,
    memory_order Order) noexcept;

Parametry

Atom
Ukazatel na atomic objekt, který obsahuje hodnotu typu Ty.

Value
Hodnota typu Ty.

Order
Úloha memory_order. Nepoužívejte memory_order_consume, memory_order_acquirenebo memory_order_acq_rel.

Poznámky

atomic_store ukládá Value do objektu, na který odkazuje Atom, v rámci memory_order určeného parametrem Order.

atomic_thread_fence

Funguje jako plot – primitivní synchronizace paměti, která vynucuje řazení mezi operacemi zatížení a úložiště – bez přidružené atomické operace.

inline void atomic_thread_fence(memory_order Order) noexcept;

Parametry

Order
Omezení řazení paměti, které určuje typ plotu.

Poznámky

Argument Order určuje typ plotu.

Hodnota Popis
memory_order_relaxed Plot nemá žádný vliv.
memory_order_consume Plot je získat plot.
memory_order_acquire Plot je získat plot.
memory_order_release Plot je uvolněný plot.
memory_order_acq_rel Plot je jak získat plot, tak uvolnit plot.
memory_order_seq_cst Plot je jak získat plot, tak uvolnit plot, a je postupně konzistentní.

kill_dependency

Odebere závislost.

template <class Ty>
Ty kill_dependency(Ty Arg) noexcept;

Parametry

Arg
Hodnota typu Ty.

Návratová hodnota

Vrácená hodnota je Arg. Vyhodnocení Arg nepřenáší závislost na volání funkce. Když funkci přerušíte možný řetěz závislostí, může kompilátoru umožnit vygenerovat efektivnější kód.

Viz také

<atomic>