Commit b08fdbb8 by Jonathan Wakely Committed by Jonathan Wakely

PR68925 don't use thread_local static for stateless object

	PR libstdc++/68925
	* include/experimental/random (randint): Use temporary instead of
	thread_local static.

From-SVN: r244584
parent 46c4e8a1
2017-01-18 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/68925
* include/experimental/random (randint): Use temporary instead of
thread_local static.
2017-01-17 Joshua Conner <joshconner@google.com>
* crossconfig.m4: Add fuchsia OS.
......
......@@ -54,8 +54,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
static_assert(is_integral<_IntType>::value && sizeof(_IntType) > 1,
"argument must be an integer type");
using _Dist = std::uniform_int_distribution<_IntType>;
static thread_local _Dist __dist;
return __dist(_S_randint_engine(), typename _Dist::param_type{__a, __b});
// This relies on the fact our uniform_int_distribution is stateless,
// otherwise we'd need a static thread_local _Dist and pass it
// _Dist::param_type{__a, __b}.
return _Dist(__a, __b)(_S_randint_engine());
}
inline void
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment