mirror of git://gcc.gnu.org/git/gcc.git
mutex (call_once): Store closure in __once_functor as bound function wrapper might not be copyable.
* include/std/mutex (call_once): Store closure in __once_functor as bound function wrapper might not be copyable. From-SVN: r181128
This commit is contained in:
parent
c5a0818e68
commit
48d8dd06b0
|
|
@ -1,3 +1,8 @@
|
|||
2011-11-07 Jonathan Wakely <jwakely.gcc@gmail.com>
|
||||
|
||||
* include/std/mutex (call_once): Store closure in __once_functor
|
||||
as bound function wrapper might not be copyable.
|
||||
|
||||
2011-11-07 Andrew MacLeod <amacleod@redhat.com>
|
||||
|
||||
* include/bits/atomic_base.h (atomic_thread_fence): Revert.
|
||||
|
|
|
|||
|
|
@ -810,8 +810,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
__once_call = &__once_call_impl<decltype(__bound_functor)>;
|
||||
#else
|
||||
unique_lock<mutex> __functor_lock(__get_once_mutex());
|
||||
__once_functor = std::__bind_simple(std::forward<_Callable>(__f),
|
||||
auto __callable = std::__bind_simple(std::forward<_Callable>(__f),
|
||||
std::forward<_Args>(__args)...);
|
||||
__once_functor = [&]() { __callable(); };
|
||||
__set_once_functor_lock_ptr(&__functor_lock);
|
||||
#endif
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue