95#ifndef G4TLSSINGLETON_HH
96#define G4TLSSINGLETON_HH 1
123 using fvector_t = std::vector<std::function<void()>>;
128 static fvector_t& GetCallbacks();
134 template <
typename FuncT>
135 static typename fvector_t::iterator
Insert(FuncT&& _func)
138 return GetCallbacks().emplace(GetCallbacks().end(),
139 std::forward<FuncT>(_func));
168 mutable std::list<T*> instances;
211 instances.push_back(i);
215void G4ThreadLocalSingleton<T>::Clear()
217 if(instances.empty())
220 while(!instances.empty())
222 T* thisinst = instances.front();
223 instances.pop_front();
G4TemplateAutoLock< G4Mutex > G4AutoLock
G4TemplateRNGHelper< G4long > * G4TemplateRNGHelper< G4long >::instance
#define G4MUTEXDESTROY(mutex)
#define G4MUTEXINIT(mutex)
void Put(const value_type &val) const
friend class G4ThreadLocalSingleton
static fvector_t::iterator Insert(FuncT &&_func)
~G4ThreadLocalSingleton() override
G4ThreadLocalSingleton & operator=(G4ThreadLocalSingleton &&)=default
G4ThreadLocalSingleton(G4ThreadLocalSingleton &&)=default
G4ThreadLocalSingleton(const G4ThreadLocalSingleton &)=delete
friend void G4AutoDelete::Register(T *)
G4ThreadLocalSingleton & operator=(const G4ThreadLocalSingleton &)=delete