diff --git a/Generator/doc/Generator/CGAL/Random.h b/Generator/doc/Generator/CGAL/Random.h index 47b3b876833..ead823642c6 100644 --- a/Generator/doc/Generator/CGAL/Random.h +++ b/Generator/doc/Generator/CGAL/Random.h @@ -183,12 +183,13 @@ bool operator == ( Random const& random2) const; \ingroup PkgGenerators The global function `get_default_random()` returns the default random numbers generator used for the generator functions and classes. + The returned generator is thread local. */ Random &get_default_random(); /*! \ingroup PkgGenerators - \deprecated The variable `default_random` is the default random + \deprecated The variable `default_random` was the default random numbers generator used for the generator functions and classes. Deprecated. Use `get_default_random()` instead. */ diff --git a/Random_numbers/include/CGAL/Random.h b/Random_numbers/include/CGAL/Random.h index a48da2825a7..6b0a27e068f 100644 --- a/Random_numbers/include/CGAL/Random.h +++ b/Random_numbers/include/CGAL/Random.h @@ -28,6 +28,7 @@ #include #include #include +#include #if defined(BOOST_MSVC) # pragma warning(push) @@ -228,11 +229,9 @@ public: boost::rand48 rng; }; -#ifdef CGAL_HEADER_ONLY - inline Random& get_default_random() { - static Random default_random; + CGAL_STATIC_THREAD_LOCAL_VARIABLE_0(Random, default_random); return default_random; } @@ -240,16 +239,7 @@ inline Random& get_default_random() namespace { CGAL_DEPRECATED_UNUSED CGAL::Random& default_random = get_default_random(); } #endif // CGAL_NO_DEPRECATED_CODE -#else // CGAL_HEADER_ONLY -// Global variables -// ================ -CGAL_EXPORT extern Random default_random; - -inline Random& get_default_random() -{ return default_random; } - -#endif // CGAL_HEADER_ONLY } //namespace CGAL