Namespaces
Variants
Views
Actions

atomic_fetch_or, atomic_fetch_or_explicit

From cppreference.com
< c‎ | atomic
Revision as of 16:22, 1 July 2013 by P12bot (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Defined in header <stdatomic.h>
C atomic_fetch_or( volatile A* obj, M arg );
(1) (since C11)
C atomic_fetch_or_explicity( volatile A* obj, M arg, memory_order order );
(2) (since C11)

Atomically replaces the value pointed by obj with the result of bitwise OR between the old value of obj and arg, and returns the value obj held previously. The operation is read-modify-write operation. The first version orders memory accesses according to memory_order_seq_cst, the second version orders memory accesses according to order.

This is a generic function defined for all atomic object types. A is the type of an atomic object, M is either the non-atomic type corresponding to A if A is atomic integer type, or ptrdiff_t if A is atomic pointer type.

[edit] Parameters

obj - pointer to the atomic object to modify
arg - the value to bitwise OR to the value stored in the atomic object
order - the memory synchronization ordering for this operation: all values are permitted

[edit] Return value

The value held previously be the atomic object pointed to by obj.

[edit] See also

atomic_fetch_oratomic_fetch_or_explicit
(C11)
atomic logical OR
(function) [edit]
atomic logical exclusive OR
(function) [edit]
C++ documentation for atomic_fetch_or, atomic_fetch_or_explicit