https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60966
--- Comment #27 from Jonathan Wakely <redi at gcc dot gnu.org> --- Author: redi Date: Sat May 17 12:58:46 2014 New Revision: 210556 URL: http://gcc.gnu.org/viewcvs?rev=210556&root=gcc&view=rev Log: PR libstdc++/60966 * include/std/future (__future_base::_State_baseV2::_M_set_result): Pass lock into _M_do_set and hold it until the function returns. Signal condition variable after call_once completes. (__future_base::_State_baseV2::_M_do_set): Use lock argument. Do not signal here. * testsuite/30_threads/promise/60966.cc: New. Added: trunk/libstdc++-v3/testsuite/30_threads/promise/60966.cc Modified: trunk/libstdc++-v3/ChangeLog trunk/libstdc++-v3/include/std/future