14#include "arcane/utils/Atomic.h"
28 void _setValue(
volatile Int32* ptr,
Int32 value)
30 std::atomic_ref<Int32> r(*
const_cast<Int32*
>(ptr));
35 std::atomic_ref<Int32> r(*
const_cast<Int32*
>(ptr));
40 std::atomic_ref<Int32> r(*
const_cast<Int32*
>(ptr));
41 return r.fetch_add(1) + 1;
45 std::atomic_ref<Int32> r(*
const_cast<Int32*
>(ptr));
46 return r.fetch_sub(1) - 1;
56 _setValue(&m_value, v);
62 return _atomicAdd(&m_value);
68 return _atomicSub(&m_value);
74 _setValue(&m_value, v);
83 return _getValue(&m_value);
87increment(
volatile Int32* v)
93decrement(
volatile Int32* v)
105getValue(
volatile Int32* v)
AtomicInt32()
Constructeur: attention, aucune initialisation.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
std::int32_t Int32
Type entier signé sur 32 bits.