re PR libstdc++/49668 ([C++0x] std::thread does not forward its args as rvalues)
authorJonathan Wakely <jwakely.gcc@gmail.com>
Sat, 9 Jul 2011 10:13:01 +0000 (10:13 +0000)
committerJonathan Wakely <redi@gcc.gnu.org>
Sat, 9 Jul 2011 10:13:01 +0000 (11:13 +0100)
commit4880236e3fdcec453e6f5f3ac04ea7dae3d31a8c
tree220d98d77838ae389eb4bbbfd1acdd2be8814bea
parent4063e61bc63c3803f8ab2d625ebe8432ac06b3da
re PR libstdc++/49668 ([C++0x] std::thread does not forward its args as rvalues)

2011-07-09  Jonathan Wakely  <jwakely.gcc@gmail.com>

PR libstdc++/49668
* include/std/functional (__bind_simple): Define.
* include/std/future (_Task_setter): Parameterize by type of result
pointer instead of state object.
(_S_task_setter): Type deduction helper.
(_Task_state): Use _S_task_setter and __bind_simple.
(_Deferred_state, _Async_state): Store call wrapper directly not as
std::function. Use _S_task_setter and __bind_simple.
(_S_make_deferred_state, _S_make_async_state): Type deduction helpers.
(async): Use new functions and __bind_simple.
* include/std/mutex (call_once): Use __bind_simple.
* include/std/thread (thread): Likewise. Remove unused headers.
* src/thread.cc: Add header.
* testsuite/30_threads/async/49668.cc: New.
* testsuite/30_threads/call_once/49668.cc: New.
* testsuite/30_threads/thread/cons/49668.cc: New.
* testsuite/30_threads/thread/cons/moveable.cc: Remove unused bool.

From-SVN: r176073
libstdc++-v3/ChangeLog
libstdc++-v3/include/std/functional
libstdc++-v3/include/std/future
libstdc++-v3/include/std/mutex
libstdc++-v3/include/std/thread
libstdc++-v3/src/thread.cc
libstdc++-v3/testsuite/30_threads/async/49668.cc [new file with mode: 0644]
libstdc++-v3/testsuite/30_threads/call_once/49668.cc [new file with mode: 0644]
libstdc++-v3/testsuite/30_threads/packaged_task/49668.cc [new file with mode: 0644]
libstdc++-v3/testsuite/30_threads/thread/cons/49668.cc [new file with mode: 0644]
libstdc++-v3/testsuite/30_threads/thread/cons/moveable.cc