[Bug libstdc++/49204] [C++0x] remaining issues in <future>

redi at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Nov 20 20:59:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49204

--- Comment #12 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Author: redi
Date: Wed Nov 20 20:59:19 2013
New Revision: 205144

URL: http://gcc.gnu.org/viewcvs?rev=205144&root=gcc&view=rev
Log:
    PR libstdc++/49204
    * include/std/future (__future_base::_State_base): Rename to
    __future_base::_State_baseV2.
    (__future_base::_State_baseV2::~_State_baseV2): Define as defaulted.
    (__future_base::_State_baseV2::_M_run_deferred): Rename to
    _M_complete_async.
    (__future_base::_State_baseV2::_M_has_deferred): Add new virtual.
    (__future_base::_State_baseV2::wait_for): Call _M_has_deferred() to
    test for a deferred function, or call _M_complete_async() to join an
    async thread that has made the shared state ready.
    (__future_base::_State_baseV2::wait_until): Likewise.
    (__future_base::_Async_state_common): Rename to _Async_state_commonV2.
    (__future_base::_Async_state_commonV2::_M_run_deferred): Rename to
    _M_complete_async.
    * src/c++11/compatibility-thread-c++0x.cc (__future_base::_State_base):
    Export old definition.
    (__future_base::_Async_state_common): Likewise.
    * src/c++11/future.cc (__future_base::_State_base::~_State_base):
    Remove.
    * doc/xml/manual/status_cxx2011.xml: Update status.
    * testsuite/30_threads/async/async.cc: Test future_status::timeout
    and future_status::ready.
    * testsuite/30_threads/async/sync.cc: Test future_status::deferred.

Modified:
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/doc/xml/manual/status_cxx2011.xml
    trunk/libstdc++-v3/include/std/future
    trunk/libstdc++-v3/src/c++11/compatibility-thread-c++0x.cc
    trunk/libstdc++-v3/src/c++11/future.cc
    trunk/libstdc++-v3/testsuite/30_threads/async/async.cc
    trunk/libstdc++-v3/testsuite/30_threads/async/sync.cc



More information about the Gcc-bugs mailing list