Function

GLibatomic_pointer_or

since: 2.30

Declaration

guintptr
g_atomic_pointer_or (
  void* atomic,
  gsize val
)

Description

Performs an atomic bitwise ‘or’ of the value of atomic and val, storing the result back in 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 #gsize to #guintptr to add support for platforms with 128-bit pointers. This should not affect existing code.

Available since: 2.30

Parameters

atomic

Type: void*

A pointer to a #gpointer-sized value.

The data is owned by the caller of the function.
val

Type: gsize

The value to ‘or’

Return value

Type: guintptr

The value of atomic before the operation, unsigned.