14#include "arcane/utils/Atomic.h"
16#ifdef ARCANE_HAS_CXX20
32 void _setValue(
volatile Int32* ptr,
Int32 value)
34#ifdef ARCANE_HAS_CXX20
35 std::atomic_ref<Int32> r(*
const_cast<Int32*
>(ptr));
38 g_atomic_int_set(ptr, value);
43#ifdef ARCANE_HAS_CXX20
44 std::atomic_ref<Int32> r(*
const_cast<Int32*
>(ptr));
47 return g_atomic_int_get(ptr);
52#ifdef ARCANE_HAS_CXX20
53 std::atomic_ref<Int32> r(*
const_cast<Int32*
>(ptr));
54 return r.fetch_add(1) + 1;
56 return g_atomic_int_add(ptr, 1) + 1;
61#ifdef ARCANE_HAS_CXX20
62 std::atomic_ref<Int32> r(*
const_cast<Int32*
>(ptr));
63 return r.fetch_sub(1) - 1;
65 return g_atomic_int_add(ptr, -1) - 1;
91 _setValue(&m_value, v);
97 return _atomicAdd(&m_value);
103 return _atomicSub(&m_value);
109 _setValue(&m_value, v);
118 return _getValue(&m_value);
122increment(
volatile Int32* v)
124 return _atomicAdd(v);
128decrement(
volatile Int32* v)
130 return _atomicSub(v);
140getValue(
volatile Int32* v)
AtomicInt32()
Constructeur: attention, aucune initialisation.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-