12#ifndef ARCCORE_CONCURRENCY_THREADPRIVATE_H
13#define ARCCORE_CONCURRENCY_THREADPRIVATE_H
17#include "arccore/base/ArccoreGlobal.h"
19#include "arccore/concurrency/GlibAdapter.h"
43 ARCCORE_DEPRECATED_REASON(
"Y2022; This class is deprecated. Use 'thread_local' specifier.")
59 void setValue(
void* v);
78 virtual void* createInstance() =0;
83 ARCCORE_DEPRECATED_REASON(
"Y2022; This class is deprecated. Use 'thread_local' specifier.")
85 : m_key(key), m_create_functor(create_functor)
109 ThreadPrivateStorage* m_key;
111 ICreateFunctor* m_create_functor;
139 ARCCORE_DEPRECATED_REASON(
"Y2022; This class is deprecated. Use 'thread_local' specifier.")
141 : m_storage(key,
this)
147 for( T*
item : m_allocated_items )
155 return (T*)(m_storage.
item());
160 void* createInstance()
override
162 T* new_ptr =
new T();
164 m_allocated_items.push_back(new_ptr);
169 std::vector<T*> m_allocated_items;
170 ThreadPrivateBase m_storage;
Classe de base permettant de conserveur une instance d'un objet par thread.
void * item()
Récupère l'instance spécifique au thread courant.
Conteneur pour les valeurs privées par thread.
Classe permettant une instance d'un type par thread.
T * item()
Instance spécifique au thread courant.
Espace de nom de Arccore.