mirror of git://gcc.gnu.org/git/gcc.git
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
This commit is contained in:
parent
46c4e8a1cf
commit
b08fdbb845
|
|
@ -1,3 +1,9 @@
|
|||
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
|
||||
|
|
|
|||
Loading…
Reference in New Issue