14#include "arccore/concurrency/ConcurrencyGlobal.h"
17#include "arccore/base/ReferenceCounter.h"
19#include "arccore/base/NotSupportedException.h"
21#include "arccore/concurrency/ParallelFor.h"
22#include "arccore/concurrency/TaskFactory.h"
23#include "arccore/concurrency/ITaskImplementation.h"
24#include "arccore/concurrency/Task.h"
26#include "arccore/concurrency/NullThreadImplementation.h"
27#include "arccore/concurrency/SpinLock.h"
29#ifdef ARCCORE_HAS_GLIB
30#include "arccore/concurrency/GlibThreadImplementation.h"
49getThreadImplementation()
51 return global_thread_implementation.get();
61 global_thread_implementation = service;
63 global_thread_implementation = &global_null_thread_implementation;
71createGlibThreadImplementation()
73#ifdef ARCCORE_HAS_GLIB
76 throw NotSupportedException(A_FUNCINFO,
"GLib is not available Recompile Arccore with ARCCORE_ENABLE_GLIB=TRUE");
94createNullThreadImplementation()
96 return NullThreadImplementationFactory::create();
102void IThreadImplementation::
103_deprecatedCreateSpinLock(Int64* spin_lock_addr)
105 createSpinLock(spin_lock_addr);
111void IThreadImplementation::
112_deprecatedLockSpinLock(
Int64* spin_lock_addr,
Int64* scoped_spin_lock_addr)
114 lockSpinLock(spin_lock_addr, scoped_spin_lock_addr);
120void IThreadImplementation::
121_deprecatedUnlockSpinLock(
Int64* spin_lock_addr,
Int64* scoped_spin_lock_addr)
123 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++.
static Int32 maxAllowedThread()
Nombre maximum de threads autorisés pour le multi-threading.
Implémentation de ITreadImplementation avec la 'Glib'.
Int32 nbAllowedThread() const
Nombre de threads utilisés au maximum pour gérer les tâches.
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.
std::int32_t Int32
Type entier signé sur 32 bits.
Espace de nom de Arccore.