mirror of https://github.com/CGAL/cgal
Use the function-local thread_local memPool, but for gcc<9.1
This commit is contained in:
parent
2ce7800239
commit
9eed06477d
|
|
@ -95,7 +95,11 @@ public:
|
||||||
#if defined(CGAL_HAS_THREADS) && defined(BOOST_GCC) && BOOST_GCC < 90100
|
#if defined(CGAL_HAS_THREADS) && defined(BOOST_GCC) && BOOST_GCC < 90100
|
||||||
if(memPool_ptr.get() == nullptr) {memPool_ptr.reset(new Self());}
|
if(memPool_ptr.get() == nullptr) {memPool_ptr.reset(new Self());}
|
||||||
Self& memPool = * memPool_ptr.get();
|
Self& memPool = * memPool_ptr.get();
|
||||||
#endif
|
#elif defined(CGAL_HAS_THREADS) // use the C++11 implementation
|
||||||
|
static thread_local Self memPool;
|
||||||
|
#else // not CGAL_HAS_THREADS
|
||||||
|
static Self memPool;
|
||||||
|
#endif // not CGAL_HAS_THREADS
|
||||||
return memPool;
|
return memPool;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -105,10 +109,6 @@ private:
|
||||||
|
|
||||||
#if defined(CGAL_HAS_THREADS) && defined(BOOST_GCC) && BOOST_GCC < 90100
|
#if defined(CGAL_HAS_THREADS) && defined(BOOST_GCC) && BOOST_GCC < 90100
|
||||||
static boost::thread_specific_ptr<Self> memPool_ptr;
|
static boost::thread_specific_ptr<Self> memPool_ptr;
|
||||||
#elif defined(CGAL_HAS_THREADS) // use the C++11 implementation
|
|
||||||
static thread_local Self memPool;
|
|
||||||
#else // not CGAL_HAS_THREADS
|
|
||||||
static Self memPool;
|
|
||||||
#endif // not CGAL_HAS_THREADS
|
#endif // not CGAL_HAS_THREADS
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -116,12 +116,6 @@ private:
|
||||||
template <class T, int nObjects >
|
template <class T, int nObjects >
|
||||||
boost::thread_specific_ptr<MemoryPool<T, nObjects> >
|
boost::thread_specific_ptr<MemoryPool<T, nObjects> >
|
||||||
MemoryPool<T, nObjects>::memPool_ptr;
|
MemoryPool<T, nObjects>::memPool_ptr;
|
||||||
#else // use C++11 or without CGAL_HAS_THREADS
|
|
||||||
template <class T, int nObjects >
|
|
||||||
# ifdef CGAL_HAS_THREADS
|
|
||||||
thread_local
|
|
||||||
# endif
|
|
||||||
MemoryPool<T, nObjects> MemoryPool<T, nObjects>::memPool;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
template< class T, int nObjects >
|
template< class T, int nObjects >
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue