15#include "arccore/base/ReferenceCounter.h"
17#include "arccore/base/NotSupportedException.h"
19#include "arccore/concurrency/ConcurrencyGlobal.h"
21#include "arccore/concurrency/NullThreadImplementation.h"
22#include "arccore/concurrency/SpinLock.h"
24#ifdef ARCCORE_HAS_GLIB
25#include "arccore/concurrency/GlibThreadImplementation.h"
44getThreadImplementation()
46 return global_thread_implementation.get();
56 global_thread_implementation = service;
58 global_thread_implementation = &global_null_thread_implementation;
66createGlibThreadImplementation()
68#ifdef ARCCORE_HAS_GLIB
71 throw NotSupportedException(A_FUNCINFO,
"GLib is not available Recompile Arccore with ARCCORE_ENABLE_GLIB=TRUE");
89createNullThreadImplementation()
91 return NullThreadImplementationFactory::create();
97void IThreadImplementation::
98_deprecatedCreateSpinLock(Int64* spin_lock_addr)
100 createSpinLock(spin_lock_addr);
106void IThreadImplementation::
107_deprecatedLockSpinLock(
Int64* spin_lock_addr,
Int64* scoped_spin_lock_addr)
109 lockSpinLock(spin_lock_addr, scoped_spin_lock_addr);
115void IThreadImplementation::
116_deprecatedUnlockSpinLock(
Int64* spin_lock_addr,
Int64* scoped_spin_lock_addr)
118 unlockSpinLock(spin_lock_addr, scoped_spin_lock_addr);
#define ARCCORE_DEFINE_REFERENCE_COUNTED_CLASS(class_name)
Macro pour définir les méthodes et types une classe qui utilise un compteur de référence.
Gestion des références à une classe C++.
Implémentation de ITreadImplementation avec la 'Glib'.
Interface d'un service implémentant le support des threads.
Implémentation des threads en mode mono-thread.
Référence à une instance.
Encapsulation d'un pointeur avec compteur de référence.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
std::int64_t Int64
Type entier signé sur 64 bits.
auto makeRef(InstanceType *t) -> Ref< InstanceType >
Créé une référence sur un pointeur.
Espace de nom de Arccore.