OSDN Git Service

PR libstdc++/49204
authorredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 1 Feb 2012 00:20:08 +0000 (00:20 +0000)
committerredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 1 Feb 2012 00:20:08 +0000 (00:20 +0000)
commitf7273180cc277a28a6779a21bfa5d5e878254c5f
treed40e1df5bc03aec565b5d676beb1c5e33137a6d8
parent6993814636870405a2a40ee238928bc43e8cc02b
PR libstdc++/49204
* include/std/future (__future_base::_State_base::wait()): Use lambda
expression for predicate and remove redundant test.
(__future_base::_State_base::wait_for()): Return future_status and
use lambda expression for predicate.
(__future_base::_State_base::wait_until()): Likewise.
(__basic_future::wait_for(), __basic_future::wait_until()): Likewise.
(__future_base::_Async_state): Replace with _Async_state_common
class for non-dependent functionality and _Async_state_impl class
template for dependent functionality.
(__future_base::_Async_state_common::_M_join): Serialize attempts to
join thread.
(__future_base::_Async_state_common::_M_run_deferred): Join.
(__future_base::_Async_state::_M_do_run): Replace with lambda.
* src/c++11/future.cc (__future_base::_Async_state_common): Define
destructor, so key function is in the library.
* config/abi/pre/gnu.ver: Add exports for ~_Async_state_common.
* testsuite/30_threads/packaged_task/members/get_future.cc: Expect
future_status return instead of bool.
* testsuite/30_threads/shared_future/members/wait_until.cc: Likewise.
* testsuite/30_threads/shared_future/members/wait_for.cc: Likewise.
* testsuite/30_threads/future/members/wait_until.cc: Likewise.
* testsuite/30_threads/future/members/wait_for.cc: Likewise.
* testsuite/30_threads/promise/members/set_value2.cc: Likewise.
* testsuite/30_threads/promise/members/set_value3.cc: Likewise.
* testsuite/30_threads/promise/members/swap.cc: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183788 138bc75d-0d04-0410-961f-82ee72b054a4
12 files changed:
libstdc++-v3/ChangeLog
libstdc++-v3/config/abi/pre/gnu.ver
libstdc++-v3/include/std/future
libstdc++-v3/src/c++11/future.cc
libstdc++-v3/testsuite/30_threads/future/members/wait_for.cc
libstdc++-v3/testsuite/30_threads/future/members/wait_until.cc
libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future.cc
libstdc++-v3/testsuite/30_threads/promise/members/set_value2.cc
libstdc++-v3/testsuite/30_threads/promise/members/set_value3.cc
libstdc++-v3/testsuite/30_threads/promise/members/swap.cc
libstdc++-v3/testsuite/30_threads/shared_future/members/wait_for.cc
libstdc++-v3/testsuite/30_threads/shared_future/members/wait_until.cc