r218255 - in /trunk/libstdc++-v3: ChangeLog con...

redi@gcc.gnu.org redi@gcc.gnu.org
Tue Dec 2 01:51:00 GMT 2014


Author: redi
Date: Tue Dec  2 01:51:25 2014
New Revision: 218255

URL: https://gcc.gnu.org/viewcvs?rev=218255&root=gcc&view=rev
Log:
Define *_at_thread_exit() functions.

	* config/abi/pre/gnu.ver: Add new exports.
	* include/std/condition_variable (notify_all_at_thread_exit): Declare.
	(__at_thread_exit_elt): New base class.
	* include/std/future: Add comments documenting the implementation.
	(__future_base::_State_baseV2::_State_baseV2()): Use brace-or-equal
	initializers and define constructor as defaulted.
	(__future_base::_State_baseV2::_M_ready): Replace member function
	with member variable.
	(__future_base::_State_baseV2::_M_set_result): Set _M_ready.
	(__future_base::_State_baseV2::_M_set_delayed_result): Define.
	(__future_base::_State_baseV2::_M_break_promise): Set _M_ready.
	(__future_base::_State_baseV2::_Make_ready): New helper class.
	(__future_base::_Deferred_state::_M_has_deferred): Remove requirement
	for caller to own mutex.
	(__future_base::_Async_state_impl::~_Async_state_impl): Call join
	directly.
	(__future_base::_Task_state_base::_M_run): Take arguments by
	reference.
	(__future_base::_Task_state_base::_M_run_delayed): Declare new pure
	virtual function.
	(__future_base::_Task_state::_M_run_delayed): Define override.
	(promise::set_value_at_thread_exit): Define.
	(promise::set_exception_at_thread_exit): Define.
	(packaged_task::make_ready_at_thread_exit): Define.
	* src/c++11/condition_variable.cc (notify_all_at_thread_exit): Define.
	* src/c++11/future.cc
	(__future_base::_State_baseV2::_Make_ready::_M_set): Define.
	* testsuite/30_threads/condition_variable/members/3.cc: New.
	* testsuite/30_threads/packaged_task/members/at_thread_exit.cc: New.
	* testsuite/30_threads/promise/members/at_thread_exit.cc: New.

Added:
    trunk/libstdc++-v3/testsuite/30_threads/condition_variable/members/3.cc
    trunk/libstdc++-v3/testsuite/30_threads/packaged_task/members/at_thread_exit.cc
    trunk/libstdc++-v3/testsuite/30_threads/promise/members/at_thread_exit.cc
Modified:
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/config/abi/pre/gnu.ver
    trunk/libstdc++-v3/include/std/condition_variable
    trunk/libstdc++-v3/include/std/future
    trunk/libstdc++-v3/src/c++11/condition_variable.cc
    trunk/libstdc++-v3/src/c++11/future.cc



More information about the Gcc-cvs mailing list