Go to main content
Oracle Developer Studio 12.6 Man Pages

Exit Print View

Updated: June 2017
 
 

atomic_signal_fence (3A)

Name

atomic_fence, atomic_thread_fence, atomic_signal_fence - memory barrier functions

Synopsis

cc -std=c11 -xatomic=studio [ flag... ] file... [ library... ]

CC -std=c++11 -xatomic=studio [ flag... ] file... [ library... ]

C synopsis

#include <stdatomic.h>
void atomic_thread_fence(memory_order order);
void atomic_signal_fence(memory_order order);

C++ synopsis

#include <atomic>
namespace std
{
extern "C" void atomic_thread_fence(memory_order order) noexcept;
extern "C" void atomic_signal_fence(memory_order order) noexcept;
}

Description

Depending on the value of order, atomic_thread_fence():

  • has no effects, if order == memory_order_relaxed;

  • is an acquire fence, if order == memory_order_acquire or order == memory_order_consume;

  • is a release fence, if order == memory_order_release;

  • is both an acquire fence and a release fence, if order == memory_order_acq_rel;

  • is a sequentially consistent acquire and release fence, if order == memory_order_seq_cst.

Refer to stdatomic.h(3A) for details of memory_order and the effect of each kind of fences.

atomic_signal_fence() is equivalent to atomic_thread_fence(), except that the resulting ordering constraints are established only between a thread and a signal handler executed in the same thread.

Attributes

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Interface Stability
Committed
MT-Level
MT-Safe

See Also

stdatomic.h(3A)