atomic_fetch_xor

atomic_fetch_xor, atomic_fetch_xor_explicit

Defined in header <stdatomic.h>
C atomic_fetch_xor( volatile A* obj, M arg );
(1) (since C11)
C atomic_fetch_xor_explicit( volatile A* obj, M arg, memory_order order );
(2) (since C11)

Atomically replaces the value pointed by obj with the result of bitwise XOR 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. The argument is pointer to a volatile atomic type to accept addresses of both non-volatile and volatile (e.g. memory-mapped I/O) atomic variables.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.

Parameters

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

Return value

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

References

  • C11 standard (ISO/IEC 9899:2011):
    • 7.17.7.5 The atomic_fetch and modify generic functions (p: 284-285)

See also

(C11)
atomic logical AND
(function)
atomic_fetch_xoratomic_fetch_xor_explicit
(C11)
atomic logical exclusive OR
(function)
C++ documentation for atomic_fetch_xor, atomic_fetch_xor_explicit

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/c/atomic/atomic_fetch_xor

在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号

意见反馈
返回顶部