atomicPointerAdd

Atomically adds val to the value of atomic.

Think of this operation as an atomic version of { tmp = *atomic; *atomic += val; return tmp; }.

This call acts as a full compiler and hardware memory barrier.

While atomic has a volatile qualifier, this is a historical artifact and the pointer passed to it should not be volatile.

In GLib 2.80, the return type was changed from #gssize to #gintptr to add support for platforms with 128-bit pointers. This should not affect existing code.

ptrdiff_t
atomicPointerAdd
(
void* atomic
,
ptrdiff_t val
)

Parameters

atomic void*

a pointer to a #gpointer-sized value

val ptrdiff_t

the value to add

Return Value

Type: ptrdiff_t

the value of atomic before the add, signed